为什么我不能为数据框的整个列赋值,然后在同一个“within”语句中的单个元素?编码:
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)在不同的“内部”语句中,它似乎符合我的预期。但如果它们在同一个“内部”中,则不是。
这是一个错误,还是我对 R 不了解的东西?