

Dear list,
I found an odd behavior of the mean function; it is allowed to do
something that you probably shouldn't:
If you calculate mean() of a sequence of numbers (without declaring them
as vector), mean() then just computes mean() of the first element. Is
there a reason why there is no warning, like in sd for example?
Example code:
mean(1,2,3,4)
sd(1,2,3,4)
Best regards
Christian
______________________________________________
[hidden email] mailing list  To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


On Mon, 8 Jun 2015, Christian Brandstätter wrote:
> Dear list,
>
> I found an odd behavior of the mean function; it is allowed to do something
> that you probably shouldn't:
> If you calculate mean() of a sequence of numbers (without declaring them as
> vector), mean() then just computes mean() of the first element. Is there a
> reason why there is no warning, like in sd for example?
mean()  unlike sd()  is a generic function that has a '...' argument
that is passed on to its methods. The default method which is called in
your example also has a '...' argument (because the generic has it) but
doesn't use it.
> Example code:
> mean(1,2,3,4)
> sd(1,2,3,4)
>
> Best regards
> Christian
>
> ______________________________________________
> [hidden email] mailing list  To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/rhelp> PLEASE do read the posting guide http://www.Rproject.org/postingguide.html> and provide commented, minimal, selfcontained, reproducible code.
>
______________________________________________
[hidden email] mailing list  To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


Thank you for the explanation.
But if you take for instance plot.default(), being another generic
function, it would not work like that:
plot(1,2,3,4), only plot(1,2) is accepted.
From Rhelp (Usage):
## Default S3 method:
mean(x, trim = 0, na.rm = FALSE, ...)
What is puzzling, is that apparently na.rm (and trim, which is indicated in the help) is accepting numeric values.
mean(c(1,NA,10),10,TRUE)
mean(c(1,NA,10),10,FALSE)
This should give at least a warning in my opinion.
mean(c(1,NA,10),10,200)
On 08/06/2015 09:27, Achim Zeileis wrote:
> On Mon, 8 Jun 2015, Christian Brandst�tter wrote:
>
>> Dear list,
>>
>> I found an odd behavior of the mean function; it is allowed to do
>> something that you probably shouldn't:
>> If you calculate mean() of a sequence of numbers (without declaring
>> them as vector), mean() then just computes mean() of the first
>> element. Is there a reason why there is no warning, like in sd for
>> example?
>
> mean()  unlike sd()  is a generic function that has a '...' argument
> that is passed on to its methods. The default method which is called
> in your example also has a '...' argument (because the generic has it)
> but doesn't use it.
>
>> Example code:
>> mean(1,2,3,4)
>> sd(1,2,3,4)
>>
>> Best regards
>> Christian
>>
>> ______________________________________________
>> [hidden email] mailing list  To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/rhelp>> PLEASE do read the posting guide
>> http://www.Rproject.org/postingguide.html>> and provide commented, minimal, selfcontained, reproducible code.
>>
[[alternative HTML version deleted]]
______________________________________________
[hidden email] mailing list  To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


On 08/06/2015 6:04 AM, Christian Brandstätter wrote:
> Thank you for the explanation.
> But if you take for instance plot.default(), being another generic
> function, it would not work like that:
> plot(1,2,3,4), only plot(1,2) is accepted.
>
>
> From Rhelp (Usage):
> ## Default S3 method:
> mean(x, trim = 0, na.rm = FALSE, ...)
>
> What is puzzling, is that apparently na.rm (and trim, which is indicated in the help) is accepting numeric values.
> mean(c(1,NA,10),10,TRUE)
> mean(c(1,NA,10),10,FALSE)
>
> This should give at least a warning in my opinion.
It is a common idiom in R programming to treat nonzero values as TRUE,
and zero as FALSE. If every use of a number where a logical is needed
generated a warning, you'd be swamped with them.
Duncan Murdoch
>
> mean(c(1,NA,10),10,200)
>
>
>
> On 08/06/2015 09:27, Achim Zeileis wrote:
>
>> On Mon, 8 Jun 2015, Christian Brandst�tter wrote:
>>
>>> Dear list,
>>>
>>> I found an odd behavior of the mean function; it is allowed to do
>>> something that you probably shouldn't:
>>> If you calculate mean() of a sequence of numbers (without declaring
>>> them as vector), mean() then just computes mean() of the first
>>> element. Is there a reason why there is no warning, like in sd for
>>> example?
>>
>> mean()  unlike sd()  is a generic function that has a '...' argument
>> that is passed on to its methods. The default method which is called
>> in your example also has a '...' argument (because the generic has it)
>> but doesn't use it.
>>
>>> Example code:
>>> mean(1,2,3,4)
>>> sd(1,2,3,4)
>>>
>>> Best regards
>>> Christian
>>>
>>> ______________________________________________
>>> [hidden email] mailing list  To UNSUBSCRIBE and more, see
>>> https://stat.ethz.ch/mailman/listinfo/rhelp>>> PLEASE do read the posting guide
>>> http://www.Rproject.org/postingguide.html>>> and provide commented, minimal, selfcontained, reproducible code.
>>>
>
>
> [[alternative HTML version deleted]]
>
>
>
> ______________________________________________
> [hidden email] mailing list  To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/rhelp> PLEASE do read the posting guide http://www.Rproject.org/postingguide.html> and provide commented, minimal, selfcontained, reproducible code.
>
______________________________________________
[hidden email] mailing list  To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.


Thank you very much, I didn't know that.
> On 08/06/2015 6:04 AM, Christian Brandstätter wrote:
>> Thank you for the explanation.
>> But if you take for instance plot.default(), being another generic
>> function, it would not work like that:
>> plot(1,2,3,4), only plot(1,2) is accepted.
>>
>>
>> From Rhelp (Usage):
>> ## Default S3 method:
>> mean(x, trim = 0, na.rm = FALSE, ...)
>>
>> What is puzzling, is that apparently na.rm (and trim, which is indicated in the help) is accepting numeric values.
>> mean(c(1,NA,10),10,TRUE)
>> mean(c(1,NA,10),10,FALSE)
>>
>> This should give at least a warning in my opinion.
> It is a common idiom in R programming to treat nonzero values as TRUE,
> and zero as FALSE. If every use of a number where a logical is needed
> generated a warning, you'd be swamped with them.
>
> Duncan Murdoch
>
>> mean(c(1,NA,10),10,200)
>>
>>
>>
>> On 08/06/2015 09:27, Achim Zeileis wrote:
>>
>>> On Mon, 8 Jun 2015, Christian Brandst�tter wrote:
>>>
>>>> Dear list,
>>>>
>>>> I found an odd behavior of the mean function; it is allowed to do
>>>> something that you probably shouldn't:
>>>> If you calculate mean() of a sequence of numbers (without declaring
>>>> them as vector), mean() then just computes mean() of the first
>>>> element. Is there a reason why there is no warning, like in sd for
>>>> example?
>>> mean()  unlike sd()  is a generic function that has a '...' argument
>>> that is passed on to its methods. The default method which is called
>>> in your example also has a '...' argument (because the generic has it)
>>> but doesn't use it.
>>>
>>>> Example code:
>>>> mean(1,2,3,4)
>>>> sd(1,2,3,4)
>>>>
>>>> Best regards
>>>> Christian
>>>>
>>>> ______________________________________________
>>>> [hidden email] mailing list  To UNSUBSCRIBE and more, see
>>>> https://stat.ethz.ch/mailman/listinfo/rhelp>>>> PLEASE do read the posting guide
>>>> http://www.Rproject.org/postingguide.html>>>> and provide commented, minimal, selfcontained, reproducible code.
>>>>
>>
>> [[alternative HTML version deleted]]
>>
>>
>>
>> ______________________________________________
>> [hidden email] mailing list  To UNSUBSCRIBE and more, see
>> https://stat.ethz.ch/mailman/listinfo/rhelp>> PLEASE do read the posting guide http://www.Rproject.org/postingguide.html>> and provide commented, minimal, selfcontained, reproducible code.
>>
>
______________________________________________
[hidden email] mailing list  To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/rhelpPLEASE do read the posting guide http://www.Rproject.org/postingguide.htmland provide commented, minimal, selfcontained, reproducible code.

