分配给R中的环境

分配给R中的环境,r,variable-assignment,evaluation,expression-evaluation,R,Variable Assignment,Evaluation,Expression Evaluation,守则: env <- new.env() assign("X", value = 2, pos = env) eval(X, envir = env) 返回X 为什么评估不返回2?这应该可以: eval(quote(X),envir=env) 问题是它试图计算X,然后将其传递给eval,但X在您的主环境中没有值,所以它给出了一个错误。放引号告诉eval在env中查找X这应该可以: eval(quote(X),envir=env) 问题是它试图计算X,然后将其传递给eval,但X在您

守则:

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

为什么评估不返回2?

这应该可以:

eval(quote(X),envir=env)
问题是它试图计算X,然后将其传递给eval,但X在您的主环境中没有值,所以它给出了一个错误。放引号告诉eval在env中查找X这应该可以:

eval(quote(X),envir=env)

问题是它试图计算X,然后将其传递给eval,但X在您的主环境中没有值,所以它给出了一个错误。从技术上讲,quote告诉eval在env中查找X,quoteX告诉eval在当前环境中不要查找X;envir=env告诉它在env中查找,一旦它开始查找…您也可以使用evalqX,envir=env作为引用的快捷方式如果它有效,为什么evalX,envir=env无效,而它无效?quotexx==xx[1]TRUEX是一个字符串,在计算时将返回该字符串。引文中说,只取对象X,不进行计算。然后在特定环境中使用eval对其进行评估技术上,quoteX告诉eval不要在当前环境中寻找X;envir=env告诉它在env中查找,一旦它开始查找…您也可以使用evalqX,envir=env作为引用的快捷方式如果它有效,为什么evalX,envir=env无效,而它无效?quotexx==xx[1]TRUEX是一个字符串,在计算时将返回该字符串。引文中说,只取对象X,不进行计算。然后在特定环境中使用eval对其进行评估