如何在R中定义 "局部 "变量?

问题描述 投票:1回答:1

例如,在一个for循环中,我想定义一些变量来做一些操作,但我希望在迭代结束后自动删除它们。

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

r variables scope local
1个回答
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 或使用设计中使用局部变量的函数。请看例子 此处

© www.soinside.com 2019 - 2024. All rights reserved.