r - R 中的 eval() 函数

标签 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(..),我会得到正确的结果,但我无法这样做,因为我正在从其他数据框中检索公式。请提出建议。

最佳答案

expression 并不像您想象的那样。您需要改用 parse:

expr = parse(text = form)

关于r - R 中的 eval() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37972147/

相关文章:

r - 大写数据框中的第一个字母

javascript - javascript中是否有更安全的类似eval的函数无法解析变量?

r - 如何使用 facet_wrap 在每个方面具有不同数字的离散类别之间创建相等的距离

c# - 将 Eval 的值从 int 转换为 string

javascript - 使用 Javascript eval() 100% 安全吗?

javascript - 如何在 Ajax() 响应中执行 JavaScript 函数

asp.net-mvc - asp.net razor中有类似eval()的函数吗?

r - 在后台加载 Shiny 的 tabPanel

r - 如何使用 ggplot2 将新图例添加到复杂的散点图

r - 在 RMarkdown 的输出中显示代码块名称