分配给 R 中的环境

Assigning to an environment in R

代码:

env <- new.env()
assign("X", value = 2,  pos = env)
eval(X, envir = env)

结果出错:"X not found"

但是:

ls(envir = env)

returns "X"

为什么 eval return 2 没有?

这应该有效:

eval(quote(X),envir=env)

问题是它试图评估 X,然后将其传递给 eval,但 X 在您的主环境中没有价值,因此它给出了错误。放置 quote 告诉 eval 在 env

中寻找 X