data.table通过引用修改意外结果

时间:2015-03-02 17:37:10

标签: r data.table

当我使用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

0 个答案:

没有答案