Skip to content
Back to formatted view

Raw Message

Message-ID: <200110111755.f9BHt0k13623@arbres1a.FMR.Com>
Date: 2001-10-11T17:55:00Z
From: David Brahm
Subject: Trouble with 3-dots

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
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._