如何选择数据表中主键中缺少值的所有行.
DT = data.table(x=rep(c("a","b",NA),each=3), y=c(1,3,6), v=1:9)
setkey(DT,x)
Run Code Online (Sandbox Code Playgroud)
选择特定值很容易
DT["a",]
Run Code Online (Sandbox Code Playgroud)
选择缺失值似乎需要矢量搜索.一个人不能使用二进制搜索.我对么?
DT[NA,]# does not work
DT[is.na(x),] #does work
Run Code Online (Sandbox Code Playgroud) 我在数据表中有一个包含NaN值的列.就像是:
my.dt <- data.table(x = c(NaN, NaN, NaN, .1, .2, .2, .3), y = c(2, 4, 6, 8, 10, 12, 14))
setkey(my.dt, x)
Run Code Online (Sandbox Code Playgroud)
我可以使用该J()函数来查找x列等于.2的所有实例
> my.dt[J(.2)]
x y
1: 0.2 10
2: 0.2 12
Run Code Online (Sandbox Code Playgroud)
但如果我尝试用NaN它做同样的事情就行不通.
> my.dt[J(NaN)]
x y
1: NaN NA
Run Code Online (Sandbox Code Playgroud)
我希望:
x y
1: NaN 2
2: NaN 4
3: NaN 6
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?我在data.table文档中找不到任何解释为什么会发生这种情况的事情(尽管可能只是因为我不知道该寻找什么).有什么方法可以得到我想要的东西吗?最后,我想NaN用零替换所有值,使用类似的东西my.dt[J(NaN), x := 0]