私は R (およびプログラミング全般) が初めてで、次のコードのビットが異なる結果をもたらす理由について混乱しています。
x <- 100
for(i in 1:5){
x <- x + 1
print(x)
}
これにより、予想どおり、シーケンス 101:105 が段階的に出力されます。
x <- 100
f <- function(){
x <- x + 1
print(x)
}
for(i in 1:5){
f()
}
しかし、これは 101 を 5 回出力するだけです。
ロジックを関数にパッケージ化すると、インクリメントではなく、反復ごとに元の値に戻るのはなぜですか? そして、これを繰り返し呼び出される関数として機能させるにはどうすればよいでしょうか?