【问题标题】:Reading global variables读取全局变量
【发布时间】:2021-04-24 16:29:15
【问题描述】:

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

错误代码示例:

v = 0;

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

test(1);
print(v);

这会产生2,因为v -&gt;&gt; global_vv 视为等于1 的局部变量v。我可以用global_v 替换该行以从全局v 中获取0 ?

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

【问题讨论】:

  • 可能有更好的方法来做到这一点,但你能用with(globalenv(), v) -&gt;&gt; global_v 之类的方法来替换函数的第一行吗?不过,在该行中使用 &lt;&lt;- 运算符似乎有点不必要。
  • 这确实有效,谢谢。 -&gt;&gt; 只是我尝试读取全局变量,当您使用 with(globalenv(), v) 引用它时确实没有必要。

标签: r global-variables


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多