[R] Question about "evalq"

ronggui ronggui.huang at gmail.com
Sun May 27 05:47:49 CEST 2007


The help page of eval says: The 'evalq' form is equivalent to
'eval(quote(expr), ...)'.  But the following is not equivalent.  Can
anyone give me some explaination? Thanks very much.

> f1 <- function(x,digits=5) lapply(x, f2)
> f2 <- function(x) eval(quote(print(x+1,digits=digits)),list(x=x),parent.frame(2))
> f1(list(x1=1))
[1] 2
$x1
[1] 2

>
> f1 <- function(x,digits=5) lapply(x, f2)
> f2 <- function(x) evalq(print(x+1,digits=digits),list(x=x),parent.frame(2))
> f1(list(x1=1))
Error in print.default(x + 1, digits = digits) :
  object "digits" not found



-- 
Ronggui Huang
Department of Sociology
Fudan University, Shanghai, China



More information about the R-help mailing list