Re: [Rd] Modifying parsed code

From: Duncan Murdoch <murdoch_at_stats.uwo.ca>
Date: Fri 07 Jul 2006 - 12:48:34 GMT

On 7/7/2006 8:08 AM, hadley wickham wrote:
> I would like to take this:
>
> .img(plot(1:10), filename="a")
>
> and produce
>
> plot(1:10)
>
> ie. whenever .img is used, I want to take the first argument and throw
> away everything else.
>
> (I am trying to produce a Sweave like environment in which I can apply
> certain functions, but not have them displayed in the output)
>
> I think I should be able to do it using substitute, but I don't know
> how to operate on language objects. Any hints would be appreciated.

Supposing that .img has a header something like this:

.img <- function(input, filename)

what you would do is this:

expr <- substitute(input) # now expr is the unevaluated expression what <- deparse(expr) # now what is a text representation of it eval(expr, envir=parent.frame()) # this should produce the same result

                                 # as evaluating input

Duncan Murdoch



R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Fri Jul 07 23:00:15 2006

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.1.8, at Fri 07 Jul 2006 - 14:24:45 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help. Please read the posting guide before posting to the list.