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:
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=10
for(i in 1:n){
+     n=3
+     print(n)
+ }
[1] 3
[1] 3
[1] 3
[1] 3
[1] 3
[1] 3
[1] 3
[1] 3
[1] 3
[1] 3
print(n)
[1] 3

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to