[R] Problems with eval() in connection with match.call()

Søren Højsgaard Soren.Hojsgaard at agrsci.dk
Tue Jul 5 01:51:28 CEST 2005


Dear all, I have a problem when passing parms from one function to another when the argument list is just '...'. Consider this example:
 
foo<-function(){
 xx <- 111222
 bar(x=xx)
}
bar <- function(...){
  cl <- match.call(expand.dots=TRUE)
  print(cl)
  x <- eval(cl$x)
  print(x)
}
foo()

> bar(x = xx)
> Error in eval(expr, envir, enclos) : Object "xx" not found

My expectation was, that xx would be evaluated to 111222 in foo before being passed on to bar, but obviously it is not so. Should I do something explicitely in foo() to 'evaluate' xx or need I do something special in bar()?? 
 
Thanks in advance, Søren




More information about the R-help mailing list