Re: [Rd] Retrieving an unevaluated argument

From: Liaw, Andy <andy_liaw_at_merck.com>
Date: Wed 01 Feb 2006 - 22:10:46 GMT


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 Received on Thu Feb 02 09:27:34 2006

This archive was generated by hypermail 2.1.8 : Thu 02 Feb 2006 - 10:44:14 GMT