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

From: Søren Højsgaard <Soren.Hojsgaard_at_agrsci.dk>
Date: Tue 05 Jul 2005 - 09:51:28 EST


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



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Tue Jul 05 09:56:32 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:33:12 EST