如何在R中定义“本地”变量?

时间:2020-05-13 15:06:30

标签: r variables scope local

例如,在for循环中,我想定义一些变量来执行某些操作,但是我希望一旦迭代结束就可以自动将其删除。

但是,如果我使用<-将值赋给变量,即使循环执行结束后,变量仍然存在,我必须手动将其删除,这很烦人。

1 个答案:

答案 0 :(得分:2)

这个答案说明了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和/或使用通过设计使用局部变量的函数。查看示例here