检查 data.table 中是否存在值的最快方法是什么?假设
- dt 是 n 列的 data.table,其中 k 列是键
- keys 是一个列表、一个值、一个 data.table,或者任何可以在
i
参数中使用的东西[.data.table
我目前在做
NROW(dt[keys,nomatch=0])!=0
有什么更快的吗?
例子
require(data.table)
iniDate = as.Date("2000-01-01")
theData = data.table(a = LETTERS, d = seq(from=iniDate ,to= iniDate + length(LETTERS)*3000-1,by="day"))
theKeys = data.table(a = c("J","M","T"), d = as.Date(c("2005-01-20","2005-05-20","2013-01-12")))
setkey(theData,a,d)
NROW(theData[theKeys],nomatch=0)!=0