R中的eval()函数

时间:2016-06-22 15:17:40

标签: r eval

我试图在R中使用eval()函数来计算表达式。 我正在从数据框中检索公式并将其存储在变量中,称为'form'。 现在我试着按如下方式评估这个表达式:

df 
x y z
1 2 3
4 5 6
7 8 9

form = "x+y+z"
expr = expression(form)
df = data.table::data.table(df)
result = eval(expr, df[1])

我得到的结果是“x + y + z”而不是6。 如果我直接将公式传递给expr = expression(..),我得到了正确的结果,但我无法做到这一点因为我正在从其他数据框中检索公式。请建议。

1 个答案:

答案 0 :(得分:5)

expression没有按照您的想法行事。您需要使用parse代替:

expr = parse(text = form)