我很想知道 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/