例如,在一个for循环中,我想定义一些变量来做一些操作,但我希望在迭代结束后自动删除它们。
但是,如果我在给变量赋值时使用 <-
即使在循环执行结束后,变量仍然存在,我必须手动删除它,这是很烦人的。
这个答案说明了如何使用 local
在R中的一个循环中。
number <- 1:5
res <- numeric(5)
local(for(i in number){
res2 <-res[i] + 42
print(res2)
})
[1] 42
[1] 42
[1] 42
[1] 42
[1] 42
上面并没有创建 res2
在 .GlobalEnv
不像下面。
for(i in number){
res2 <-res[i] + 42
print(res2)
}
或者,你可以避免循环,而使用 *apply
或使用设计中使用局部变量的函数。请看例子 此处