如果我有一个字符向量,如何告诉R将其作为命令执行?
简单示例:
> a <- paste("2", "+", "3")
>a
>[1] "2 + 3"
我希望R实际上做2 + 3,而不只是打印&#34; a&#34;的内容。
答案 0 :(得分:3)
这样做的方法是
a <- paste("2", "+", "3")
eval(parse(text = a))
但是,总的来说,这不是一个好主意。通常有更好的方法来做你想做的事。
> require(fortunes)
> fortune("parse")
If the answer is parse() you should usually rethink the question.
-- Thomas Lumley
R-help (February 2005)
在What specifically are the dangers of eval(parse())?的答案中有很多关于eval(parse())
被视为“不良做法”的信息;总之,它是
容易出错的
难以调试
通常会有一种更易读的方式来做你想做的事情
可能会带来安全风险
(尽管最后一个可能不适用于大多数R用例)
答案 1 :(得分:1)
eval(parse(text=paste("2", "+", "3")))