First, note that functions in R match named arguments first, followed by the position of the arguments in the call.
Second, have a look at how mean and max are defined mean <- function (x, trim = 0, na.rm = FALSE, ...){ max <- function (..., na.rm = FALSE){ It's the difference in the position of "..." argument or catchall argument (sorry, I don't know its formal name) that determines the different behaviour. The "..." is often converted to a list internally. So when you type in mean(1,1,2), it is treated as "mean( x=1, trim=1, na.rm=2 )". and when you type in max(1,1,2), it is treated as "max( as.list(1,1,2), na.rm = FALSE )" However, you do raise a good point. Reading mean.default(), I do not see how and when the "..." argument in mean() comes to play. Perhaps redefine mean to be mean <- function (..., trim = 0, na.rm = FALSE) so that it is similar to max, sum, range etc. But there might be a philosopphical counter argument for this as well. Functions like mean() and sd() are supposed to summarise a single vector whereas max, sum, range can work on several vectors by concatenating them into a single list. Consider max( c(1,2,3), c(2,3,4) ). Regards, Adai Matthew Walker wrote: > Hi, > > I was *very* surprised by this little trick for new players: mean() only > considers its first argument! > > > mean(1,1,2) > [1] 1 > > mean(2,1,1) > [1] 2 > > > I found this very different behaviour to max(): > > > max(1,1,2) > [1] 2 > > max(2,1,1) > [1] 2 > > > > Perhaps this is the wrong list to ask, but does anyone else think this a > little on the interesting side? Is it not possible to detect a first > argument of length one in the presence of other un-named arguments and > at least produce a warning? > > > Cheers, > > > Matthew > > ______________________________________________ > R-help@stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > > > ______________________________________________ R-help@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.