我在全局变量和/或工作流程中有一个问题。我有以下代码。
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