p.s. Note that one workaround is > bar <- function(n,...) { f <- function() foo(...); + replicate(n,f()) } > bar(10,3) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [1,] 3 3 3 3 3 3 3 3 3 3 [2,] 2 2 2 2 2 2 2 2 2 2
A little while ago, Jason Eisner wrote: > I am using R version 2.0.0 (2004-10-04) on Fedora Core 2. > > This works correctly: > >> foo <- function(x=1,y=2) { c(x,y) } >> bar <- function(n,...) c(n,foo(...)) >> bar(10,3) > [1] 10 3 2 > > But it goes wrong if I replace "c" in bar with "replicate": > >> foo <- function(x=1,y=2) { c(x,y) } >> bar <- function(n,...) replicate(n,foo(...)) >> bar(10,3) > [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] > [1,] 0 0 0 0 0 0 0 0 0 0 > [2,] 2 2 2 2 2 2 2 2 2 2 > > It is mysterious why x was bound to the apparently arbitrary > value 0 while y was left at its default. > > The ... arguments to bar seems to be ignored altogether. > bar(10), bar(10,x=3), and bar(10,3,4) give the same result. > Furthermore, bar(10,extra=3) does not give an error. > > Perhaps this mysterious behavior is unavoidable because of > the kind of hack replicate is? > > Thanks ... ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel