评估字符串中定义的表达式

时间:2016-01-12 09:29:27

标签: r

我正在尝试评估一个公式,例如存储在字符串中的"x+y"。但是,我需要将xy替换为我的环境中的值(为简单起见,我在此使用范围)。

eval(substitute(x+y,list(x=1:10,y=101:110)))
 [1] 102 104 106 108 110 112 114 116 118 120

我假设我可以使用parse从字符串生成公式。

eval(substitute(parse(x+y),list(x=1:10,y=101:110)))

然而,这“显然”只给出了

expression(x+y)

所以我试图用两次使用它来表达替代表达式。但是,这也没有给出预期的结果。有什么建议吗?

>substitute(substitute(expr,list(x=1:10,y=101:110)),list(expr=parse(text="x+y")))
substitute(expression(x + y), list(x = 1:10, y = 101:110))
> eval(substitute(substitute(expr,list(x=1:10,y=101:110)),list(expr=parse(text="x+y"))))
expression(x+y)
> eval(eval(substitute(substitute(expr,list(x=1:10,y=101:110)),list(expr=parse(text="x+y")))))
Error in eval(expr, envir, enclos) : object 'x' not found

0 个答案:

没有答案