在R中,get(“abc”)和eval(parse(text =“abc”))之间有什么区别?

时间:2015-03-14 06:05:02

标签: r parsing eval

我想知道这两个操作之间的区别;在这个例子中,它们似乎工作相同,但必须有一个工作而另一个不工作的情况。我无法弄清楚何时会出现这种情况。

> a <- 298
> eval(parse(text = "a"))
[1] 298
> get("a")
[1] 298

提前致谢

1 个答案:

答案 0 :(得分:2)

在您的示例中,两个函数的工作方式相同。但是当您想要评估特定表单的表达式时会出现差异,例如:

eval(parse(text = "x <- 1"))

eval(parse(...))命令将评估输入中的表达式,而 get 将只返回其中存储的值,在此特定示例中不适用于 get ,因为它是一个表达式(不是变量)。所以 eval(parse(...))主要用于评估您在程序中构建的表达式(通过使用粘贴等)。