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.