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