On 17/11/2007 5:04 PM, Johannes Hüsing wrote: > Dear expRts, > I just realized that the "..." argument in a function cannot be used without > taking precautions sometimes. The following behaviour is what I stumbled > upon:
The problem is the way replicate is implemented. It takes the expression, and wraps it in a function(...) before calling sapply. The ... in your expression matches the ... in the wrapper function, not the ... from the parent. I think you'll need to make calls to sapply directly to do what you want. Duncan Murdoch > >> myrepl <- function(length, fun, ...) { > + replicate(length, fun(...))} >> myrepl(20, sample, 1:5) > [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 >> myotherrepl <- function(length, fun, ...) { > + args <- list(...) > + replicate(length, do.call(fun, args))} >> myotherrepl(20, sample, 1:5) > [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] > [,14] > [1,] 1 2 3 4 3 1 5 4 1 3 1 1 5 > 2 > [2,] 5 4 1 1 1 2 4 3 5 4 2 3 4 > 3 > [3,] 3 3 2 2 2 5 2 5 2 2 5 2 3 > 5 > [4,] 4 5 5 3 5 4 1 1 3 5 4 4 1 > 4 > [5,] 2 1 4 5 4 3 3 2 4 1 3 5 2 > 1 > [,15] [,16] [,17] [,18] [,19] [,20] > [1,] 4 5 1 2 5 5 > [2,] 2 1 4 1 1 4 > [3,] 3 3 2 3 3 3 > [4,] 1 4 3 5 4 2 > [5,] 5 2 5 4 2 1 > > Is the necessity to protect "..." unique to replicate(), or have I been > (or am I still) missing something basic here? > > Best wishes > > > Johannes > > > ------------------------------------------------------------------------ > > ______________________________________________ > R-help@r-project.org 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@r-project.org 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.