r - 计算以字符串形式给出的表达式

标签 r eval r-faq

我很想知道 R 是否可以使用其 eval() 函数来执行例如提供的计算一个字符串。

这是一个常见的情况:

eval("5+5")

但是,我得到的不是 10,而是:

[1] "5+5"

有什么解决办法吗?

最佳答案

eval()函数计算表达式,但是 "5+5"是一个字符串,而不是一个表达式。使用parse()text=<string>将字符串更改为表达式:

> eval(parse(text="5+5"))
[1] 10
> class("5+5")
[1] "character"
> class(parse(text="5+5"))
[1] "expression"

调用eval()调用许多行为,其中一些行为并不明显:

> class(eval(parse(text="5+5")))
[1] "numeric"
> class(eval(parse(text="gray")))
[1] "function"
> class(eval(parse(text="blue")))
Error in eval(expr, envir, enclos) : object 'blue' not found

另请参阅tryCatch .

关于r - 计算以字符串形式给出的表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1743698/

相关文章:

r - RStudio在保存之前将R临时脚本文件存储在哪里?

r - 如何使用ggplot2在R中制作具有透明背景的图形?

R 在嵌套数据集中添加一列

r - R 4.0.0及更高版本下使用向量动态更新公式

bash - 按名称间接查找 shell 变量

r - 在图上添加回归线方程和 R^2

r - R 中的 do-while 循环

python - 如何以字符串格式编写多行函数?

javascript - Javascript 中 Tcl 的 'uplevel' 是什么?

r - ggplot2 折线图给出 "geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic?"