R中的eval()函数

R B*_*Bud 3 eval r

我正在尝试使用eval()R中的函数来计算表达式。我正在从数据框中检索公式,并将其存储在变量中,例如“ 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])
Run Code Online (Sandbox Code Playgroud)

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

Kon*_*lph 5

expression不按照您的想法去做。您需要parse改用:

expr = parse(text = form)
Run Code Online (Sandbox Code Playgroud)