データ フレームの列全体に値を代入できず、同じ "within" ステートメント内の 1 つの要素に代入できないのはなぜですか? コード:
foo <- data.frame( a=seq(1,10) )
foo <- within(foo, {
b <- 1 # set all of b to 1
})
foo <- within(foo, {
c <- 1 # set all of c to 1
c[2] <- 20 # set one element to 20
b[2] <- 20
})
foo
与えます:
a b c
1 1 1 1
2 2 20 20
3 3 1 1
4 4 1 20
5 5 1 1
6 6 1 20
7 7 1 1
8 8 1 20
9 9 1 1
10 10 1 20
b の値は私が期待したものです。c の値が変です。列全体への割り当て (つまり b <- 1) が、単一の要素への割り当て (つまり b[2] <- 20) とは異なる "with" ステートメントにある場合、期待どおりに動作するようです。しかし、それらが同じ「内」にある場合はそうではありません。
これはバグですか、それとも R について理解できないことですか?