【发布时间】:2016-07-28 20:36:13
【问题描述】:
代码:
env <- new.env()
assign("X", value = 2, pos = env)
eval(X, envir = env)
导致错误:“X not found”
但是:
ls(envir = env)
返回“X”
为什么 eval 不返回 2?
【问题讨论】:
标签: r variable-assignment evaluation expression-evaluation
代码:
env <- new.env()
assign("X", value = 2, pos = env)
eval(X, envir = env)
导致错误:“X not found”
但是:
ls(envir = env)
返回“X”
为什么 eval 不返回 2?
【问题讨论】:
标签: r variable-assignment evaluation expression-evaluation
这应该可行:
eval(quote(X),envir=env)
问题是它尝试评估 X,然后将其传递给 eval,但 X 在您的主环境中没有任何价值,因此它会给出错误。输入quote 告诉 eval 在env 中寻找X
【讨论】:
quote(X) 告诉eval 暂时不要寻找X(即在当前环境中); envir=env 告诉它在 env 中查找,一旦它开始查找...
evalq(X,envir=env) 作为引用的“快捷方式”