Skip to content

How to make the assignment in a for-loop not affect variables outside the loop?

2 messages · Peng Yu, Uwe Ligges

#
I know that R is a dynamic programming language. But I'm wondering if
there is a way to make the assignment in a for-loop not affect
variables outside the loop.
+     n=3
+     print(n)
+ }
[1] 3
[1] 3
[1] 3
[1] 3
[1] 3
[1] 3
[1] 3
[1] 3
[1] 3
[1] 3
[1] 3
#
Either use local as in:

n=10

local(for(i in 1:n){
      n=3
      print(n)
})

print(n)


or write a function that is evaluated in its own environment:

n=10

MyLoopFoo <- function(){
     for(i in 1:n){
         n <- 3
         print(n)
     }
}

MyLoopFoo()

print(n)




Uwe Ligges
Peng Yu wrote: