[R] Trouble with 3-dots

David Brahm a215020 at agate.fmr.com
Thu Oct 11 19:55:00 CEST 2001


   I wrote on 10/8/01 that I could not pass missing arguments from one function
to another through "...":

R> x <- matrix(1:12, 3,4)
R> myfun <- function(x, ...) {if (missing(...)) x[]<-0 else x[...]<-0; x}
R> myfun2 <- function(x, ...) myfun(x, ...)
R> myfun2(x, ,1:2)
   Error in myfun(x, ...) : Argument is missing, with no default

Here is one solution:
R> myfun2 <- function(x, ...) {
R>   sc <- sys.call()
R>   sc[[1]] <- as.name("myfun")
R>   eval.parent(sc)
R> }

R> myfun2(x, ,1:2)
       [,1] [,2] [,3] [,4]
  [1,]    0    0    7   10
  [2,]    0    0    8   11
  [3,]    0    0    9   12

Comments?  Is this in any way inefficient or dangerous?  Thanks.

		-- David Brahm (brahm at alum.mit.edu)
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list