当我使用R包:=
的{{1}}运算符通过引用创建列时,我得到了一些意想不到的结果:
data.table
添加列会显示:
dt <- data.table(A = c(NA, "050", "050", "050"),
B = c(NA, "00", "00", "02"),
C = c(NA, "00", "01", "02"))
> dt
A B C
1: NA NA NA
2: 050 00 00
3: 050 00 01
4: 050 02 02
修改列时,我得到了
dt[B == "00" & C == "00", lev := 1]
> dt[lev == 1, .N]
[1] 1
虽然列dt[B == "00" & C != "00", lev := 2]
> dt[lev == 1, .N]
[1] 0
的第二个值仍然等于lev
:
1
我在这里想念一下吗?
> dt
A B C lev
1: NA NA NA NA
2: 050 00 00 1
3: 050 00 01 2
4: 050 02 02 NA