How to make the assignment in a for-loop not affect variables outside the loop?
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 at 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.