r中的全局变量与计数器



我在全局变量和/或工作流程中有一个问题。我有以下代码。

counter <- 0
g <- function(){
f <- function(){
  counter <- counter + 1
  print(counter)
}
f()
f()
f()
}
g()
g()
g()

我期望函数G给我1 2 3,4 5 6,7 8 9.相反,我得到了1 1 1,1 1 1 1,1 1 1.有人可以帮我找出原因吗?谢谢!

我们可能需要执行分配运算符(<<-)才能通过所有父环境进行搜索以进行分配

g <- function(){
  f <- function(){
  counter <<- counter + 1
  print(counter)
 }
f()
f()
f()
}
g()
#[1] 1
#[1] 2
#[1] 3
g()
#[1] 4
#[1] 5
#[1] 6
g()
#[1] 7
#[1] 8
#[1] 9

相关内容

  • 没有找到相关文章

最新更新