首页 > 解决方案 > 读取全局变量

问题描述

我能找到的只是如何写入全局变量,而不是如何读取它们。

错误代码示例:

v = 0;

test <- function(v) {
  v ->> global_v;
  v <<- global_v + v;
}

test(1);
print(v);

这会产生2因为v ->> global_v将其视为等于 1v的局部变量。我可以用什么替换该行以从全局获取 0 ?vglobal_vv

我当然是在询问与“使用不同的变量名”不同的解决方案。

标签: rglobal-variables

解决方案


您可以使用在全局环境而不是函数中with(globalenv(), v)进行评估。从它的第一个参数构造一个环境,并评估该环境中的后续参数。返回全局环境。将它们放在一起,您的功能将变为:vwithglobalenv()

test <- function(v) {
  v <<- with(globalenv(), v) + v;
}

推荐阅读