Duncan Murdoch <[EMAIL PROTECTED]> writes:

> On 1/9/2006 1:27 PM, Liaw, Andy wrote:
>> If you haven't seen this in your math courses, perhaps this would help:
>> http://en.wikipedia.org/wiki/Empty_set
>>
>
> This is what is so great about Wikipedia:  it gives certainty where
> I'd only call it a fairly standard convention.  ;-)
>
> Duncan Murdoch

Yes, thanks for the refresher and sorry for the noise. Martin

>> which says, in part:
>> Operations on the empty set
>> Operations performed on the empty set (as a set of things to be
>> operated
>> upon) can also be confusing. (Such operations are nullary operations.) For
>> example, the sum of the elements of the empty set is zero, but the product
>> of the elements of the empty set is one (see empty product). This may seem
>> odd, since there are no elements of the empty set, so how could it matter
>> whether they are added or multiplied (since "they" do not exist)?
>> Ultimately, the results of these operations say more about the operation in
>> question than about the empty set. For instance, notice that zero is the
>> identity element for addition, and one is the identity element for
>> multiplication.
>> Andy
>> From: Martin Morgan
>>> I guess I have to say yes, I'd exepct
>>> x <- 1:10
>>> sum(x[x>10]) ==> numeric(0)
>>> this would be reinforced by recongnizing that numeric(0) is not
>>> zero,
>>> but nothing. I guess the summation over an empty set is an empty set,
>>> rather than a set containing the number 0. Certainly these
>>> exp(x[x>10]) ==> numeric(0)
>>> numeric(0) + 1 ==> numeric(0)
>>> would give me pause.
>>> Gabor Grothendieck <[EMAIL PROTECTED]> writes:
>>> > The way to think about it is:
>>> >
>>> >    prod(rep(x,n)) == x^n
>>> >
>>> > and that works for n=0 too.
>>> Hmm, Not sure what to put in for x and n? do you mean x ==
>>> numeric(0),
>>> n == 0 (0 copies of an empty set), x == ANY n == numeric(0) (an empty
>>> set of ANYthing), x == numeric(0), n == numeric(0) ? For all of these,
>>> x^n evaluates to numeric(0).
>>> Martin (Morgan)
>>> Duncan Murdoch <[EMAIL PROTECTED]> writes:
>>> > On 1/9/2006 12:40 PM, Martin Morgan wrote:
>>> >> I'm a little confused. I understand that numeric(0) means an empty
>>> >> numeric vector, not the number 0 expressed as numeric. As it is
>>> now,
>>> >> prod(numeric(0)) generates something -- a vector of length 1
>>> >> containing the number 1 -- from nothing. I would have expected
>>> >> prod(numeric(0)) ==> numeric(0)
>>> >> this is consistent with
>>> >> numeric(0) ==> numeric(0)
>>> >> numeric(0) * 1 ==> numeric(0)
>>> >> cumprod(numeric(0)) ==> numeric(0)
>>> >> and, because concatenation occus before function evaluation,
>>> >> prod(c(numeric(0),1)) ==> prod( c(1) ) ==> 1
>>> >> I would expect sum() to behave the same way, e.g., sum(numeric(0))
>>> >> ==>
>>> >> numeric(0). From below,
>>> >>
>>> >
>>> > I think the code below works as I'd expect.  Would you really
>>> like the
>>> > last answer to be numeric(0)?
>>> >
>>> >  > x <- 1:10
>>> >  > sum(x)
>>> > [1] 55
>>> >  > sum(x[x>5])
>>> > [1] 40
>>> >  > sum(x[x>10])
>>> > [1] 0
>>> >
>>> > Duncan Murdoch
>>> >
>>> >>>     >>>> consider exp(sum(log(numeric(0)))) ... ?)
>>> >>>     >>     >> That's a fairly standard mathematical convention,
>>> >>> which
>>> >>>     >> is presumably why sum and prod work that way.
>>> >>>     >>     >> Duncan Murdoch
>>> >> I would have expected numeric(0) as the result (numeric(0) is the
>>> >> result from log(numeric(0)), etc).
>>> >> Martin (Morgan)
>>> >> Martin Maechler <[EMAIL PROTECTED]> writes:
>>> >>
>>> >>>>>>>> "Ben" == Ben Bolker <[EMAIL PROTECTED]>
>>> >>>>>>>>     on Sun, 08 Jan 2006 21:40:05 -0500 writes:
>>> >>>
>>> >>>     Ben> Duncan Murdoch wrote:
>>> >>>     >> On 1/8/2006 9:24 PM, Ben Bolker wrote:
>>> >>>     >>     >>> It surprised me that prod(numeric(0)) is 1.  I
>>> guess
>>> >>> if
>>> >>>     >>> you say (operation(nothing) == identity element) this
>>> >>>     >>> makes sense, but ??
>>> >>>     >>     >>     >> What value were you expecting, or were you
>>> >>> expecting an
>>> >>>     >> error?  I can't think how any other value could be
>>> >>>     >> justified, and throwing an error would make a lot of
>>> >>>     >> formulas more complicated.
>>> >>>     >>     >>>
>>> >>>     >>     >>>> consider exp(sum(log(numeric(0)))) ... ?)
>>> >>>     >>     >> That's a fairly standard mathematical convention,
>>> >>> which
>>> >>>     >> is presumably why sum and prod work that way.
>>> >>>     >>     >> Duncan Murdoch
>>> >>>
>>> >>>     Ben>    OK.  I guess I was expecting NaN/NA (as opposed to
>>> >>>     Ben> an error), but I take the "this makes everything else
>>> >>>     Ben> more complicated" point.  Should this be documented or
>>> >>>     Ben> is it just too obvious ... ?  (Funny -- I'm willing to
>>> >>>     Ben> take gamma(1)==1 without any argument or suggestion
>>> >>>     Ben> that it should be documented ...)
>>> >>>
>>> >>> see?  so it looks to me as if you have finally convinced
>>> >>> yourself that '1' is the most reasonable result.. ;-)
>>> >>>
>>> >>> Anyway, I've added a sentence to help(prod)  {which matches
>>> >>> the sentence in help(sum), BTW}.
>>> >>>
>>> >>> Martin
>>> >>>
>>> >>> ______________________________________________
>>> >>> R-devel@r-project.org mailing list
>>> >>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>> ______________________________________________
>>> R-devel@r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>>
>> ------------------------------------------------------------------------------
>> Notice:  This e-mail message, together with any attachments, contains 
>> information of Merck & Co., Inc. (One Merck Drive, Whitehouse Station, New 
>> Jersey, USA 08889), and/or its affiliates (which may be known outside the 
>> United States as Merck Frosst, Merck Sharp & Dohme or MSD and in Japan, as 
>> Banyu) that may be confidential, proprietary copyrighted and/or legally 
>> privileged. It is intended solely for the use of the individual or entity 
>> named on this message.  If you are not the intended recipient, and have 
>> received this message in error, please notify us immediately by reply e-mail 
>> and then delete it from your system.
>> ------------------------------------------------------------------------------

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to