如何在 R 中定义 'local' 变量?

How to define 'local' variables in R?

例如,在一个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

以上内容不会在 .GlobalEnv 中创建 res2,这与以下内容不同:

 for(i in number){
  res2 <-res[i] + 42
  print(res2)
 }

或者,您可以避免循环并使用 *apply and/or 使用按设计使用局部变量的函数。查看示例