[Rd] turning expression object to function
Marc Schwartz
marc_schwartz at comcast.net
Mon Dec 18 21:24:39 CET 2006
On Mon, 2006-12-18 at 19:06 +0100, Antonio, Fabio Di Narzo wrote:
> Dear all,
> I have the following problem.
>
> Given an expression object 'expr' containing a certain set of symbols
> (say 'a', 'b', 'c'), I would like to translate the expression object
> in an R function of, say, 'a', programmatically. Here an example of
> what I mean.
>
> Given:
> > expr <- expression(a+b+c)
>
> a call like:
> > asFunctionOf(expr, 'a', list(b=1, c=2))
>
> should return a function (not necessarly formally) equivalent to
> > function(a) a+1+2
>
> Some suggestions?
>
> Best regards,
> Antonio.
Let me offer some pointers and a couple of possible examples:
?call
?as.function
?alist
?eval
?parse
expr <- expression(a + b + c)
> as.function(alist(a = , b = 1, c = 2, eval(expr)))(5)
[1] 8
> as.function(alist(a = , b = 1, c = 2, eval(expr)))(5, 10, 8)
[1] 23
MyExpr <- paste(letters[1:3], collapse = " + ")
> MyExpr
[1] "a + b + c"
> as.function(alist(a = , b = 1, c = 2, eval(parse(text = MyExpr))))(6)
[1] 9
HTH,
Marc Schwartz
More information about the R-devel
mailing list