[R] How to make the assignment in a for-loop not affect variables outside the loop?
Peng Yu
pengyu.ut at gmail.com
Thu Dec 10 05:03:11 CET 2009
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.
>
More information about the R-help
mailing list