From h.wickham at gmail.com  Wed Feb  1 23:01:52 2006
From: h.wickham at gmail.com (hadley wickham)
Date: Wed, 1 Feb 2006 16:01:52 -0600
Subject: [Rd] Retrieving an unevaluated argument
Message-ID: <f8e6ff050602011401m29afd061v3cd1cdae48a83d4f@mail.gmail.com>

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



[Rd] Retrieving an unevaluated argument
hadley wickham