1
的代码:分配到环境中的R
env <- new.env()
assign("X", value = 2, pos = env)
eval(X, envir = env)
结果在一个错误: “X未找到”
然而:
ls(envir = env)
返回 “X”
为什么eval不返回2?
的代码:分配到环境中的R
env <- new.env()
assign("X", value = 2, pos = env)
eval(X, envir = env)
结果在一个错误: “X未找到”
然而:
ls(envir = env)
返回 “X”
为什么eval不返回2?
这应该工作:
eval(quote(X),envir=env)
问题是它试图评估X,然后把它传递给eval
但X在你的主环境没有价值,因此给出了一个错误。把quote
告诉EVAL寻找X
在env
技术上,'报价(X)''告诉* eval'不找'X'但*(即在当前的环境); 'envir = env'告诉它看看'env',一旦它开始寻找... –
你也可以使用'evalq(X,envir = env)'作为引用的“快捷方式” – MrFlick
@ BenBolker好点我是懒惰 – Carl