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)
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
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
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:
4 matches
Mail list logo