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