[R] How to make the assignment in a for-loop not affect variables outside the loop?
John Fox
jfox at mcmaster.ca
Thu Dec 10 13:05:39 CET 2009
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-bounces at r-project.org [mailto:r-help-bounces at r-project.org]
On
> Behalf Of Peng Yu
> Sent: December-09-09 11:03 PM
> To: r-help at 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 <ligges at 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 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.
> >
>
> ______________________________________________
> 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.
More information about the R-help
mailing list