Message-ID: <f8e6ff050602011401m29afd061v3cd1cdae48a83d4f@mail.gmail.com>
Date: 2006-02-01T22:01:52Z
From: Hadley Wickham
Subject: Retrieving an unevaluated argument
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