Re: [R] How to make the assignment in a for-loop not affect variables outside the loop?
Try n=10 b=1 local( for(i in 1:n) { n=3 print(n) b - b*i } ) print(n) print(b) or n=10 b=1 local( for(i in 1:n) { n=3 print(n) assign(b, b*i, env=.GlobalEnv) } ) print(n) print(b) John -Original Message- From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On Behalf Of Peng Yu Sent: December-09-09 11:03 PM To: r-h...@stat.math.ethz.ch Subject: Re: [R] How to make the assignment in a for-loop not affect variables outside the loop? 2009/11/22 Uwe Ligges lig...@statistik.tu-dortmund.de: Either use local as in: n=10 local(for(i in 1:n){ n=3 print(n) }) print(n) 'local()' makes everything inside it unavailable outside of it. Is there a way to make 'n' unavailable outside but still make 'b' available outside without using 'function'? n=10 b=1 local( for(i in 1:n) { n=3 print(n) b=b*i } ) print(n) print(b) 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. __ 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.
Re: [R] How to make the assignment in a for-loop not affect variables outside the loop?
2009/11/22 Uwe Ligges lig...@statistik.tu-dortmund.de: Either use local as in: n=10 local(for(i in 1:n){ n=3 print(n) }) print(n) 'local()' makes everything inside it unavailable outside of it. Is there a way to make 'n' unavailable outside but still make 'b' available outside without using 'function'? n=10 b=1 local( for(i in 1:n) { n=3 print(n) b=b*i } ) print(n) print(b) 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.
[R] How to make the assignment in a for-loop not affect variables outside the loop?
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.
Re: [R] 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@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.