R 中的 eval() 函数
eval() function in R
我正在尝试使用 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(..)
,我会得到正确的结果,但我无法这样做,因为我正在从其他数据框中检索公式。请提出建议。
expression
并不像您想象的那样。您需要使用 parse
代替:
expr = parse(text = form)
我正在尝试使用 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(..)
,我会得到正确的结果,但我无法这样做,因为我正在从其他数据框中检索公式。请提出建议。
expression
并不像您想象的那样。您需要使用 parse
代替:
expr = parse(text = form)