[...snip...] I am aware of the "..." in sapply(). I am unable to understand how sapply will know where to utilise the x[i] values: as the 1st arg or the 2nd arg for f(x, y)?
That is, when I say:
sapply(x, f, 3)
how does sapply know that I mean:
for (i in 3:5) { f(i, 3) }
and not
for (i in 3:5) { f(3, i) }
How would we force sapply to use one or the other interpretation?
All the functions in the apply() family construct the call by just appending the additional arguments after the first. If you supply argument names for the additional arguments, those will be supplied to the function called. This can be used to force different interpretations of arguments. E.g:
> sapply(3:5, function(x, y) {return(y)}, 1)
[1] 1 1 1
> sapply(3:5, function(x, y) {return(y)}, y=1)
[1] 1 1 1
> sapply(3:5, function(x, y) {return(y)}, x=1)
[1] 3 4 5
> sapply(3:5, function(x, y) {return(y)}, z=1)
Error in FUN(X[[as.integer(1)]], ...) : unused argument(s) (z ...)
>In the third example, the actual set of arguments in the call to the anonymous function is something like (3, x=1), so the standard argument interpretation rules result in the arguments having the values y=3, x=1.
hope this help,
Tony Plate
Thanks,
-ans.
-- Ajay Shah Consultant [EMAIL PROTECTED] Department of Economic Affairs http://www.mayin.org/ajayshah Ministry of Finance, New Delhi
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
