Skip to content
Back to formatted view

Raw Message

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