在填充的 data.table 和另一个空的 data.table 之间进行合并会在结果 data.table 中引入一个 NA 行:
a = data.table(c=c(1,2),key='c')
b = data.table(c=3,key='c')
b=b[c!=3]
b
# Empty data.table (0 rows) of 1 col: c
merge(a,b,all=T)
# c
# 1: NA
# 2: 1
# 3: 2
为什么?我希望它只返回 data.table 的行a
,就像它对 merge.data.frame 所做的那样:
> merge.data.frame(a,b,all=T,by='c')
# c
#1 1
#2 2