Re: [Rd] Retrieving an unevaluated argument

2006-02-01 Thread Liaw, Andy
Why isn't substitute(x, parent.frame()) enough?  parse(deparse()) seems
redundant...

Andy

From: hadley wickham
> 
> 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
> 
> __
> R-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
> 
>

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] Retrieving an unevaluated argument

2006-02-01 Thread hadley wickham
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

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel