在 R 中,get("abc") 和 eval(parse(text="abc")) 有什么区别

in R, what is the difference between get("abc") and eval(parse(text="abc"))

我想知道这两个操作之间的区别;在此示例中,它们似乎工作相同,但肯定存在其中一个工作而另一个不工作的情况。我只是不知道什么时候会这样。

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

提前致谢

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

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

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