[Rd] Retrieving an unevaluated argument

hadley wickham h.wickham at gmail.com
Wed Feb 1 23:01:52 CET 2006


I'm trying to retrieve an unevalated argument (a list in particular). 
I can do this easily when I call the function directly:

a1 <- function(x) match.call()$x

> a1(list(y=x^2))
list(y = x^2)

But when the function is called by another function, it gets trickier

b <- function(x, f) f(x)

> b(list(x^2), a1)
x

The best I've been able to do is:

a2 <- function(x) parse(text=deparse(substitute(x, parent.frame())))[[1]]

> b(list(x^2), a2)
list(x^2)

But I'm sure there must be a better way!

Hadley



More information about the R-devel mailing list