当它作为单个列提供时,是否有data.table
惯用的方法来获取数据表的唯一键?
我正在处理大量数据集,每个数据集大约有1000万行,并希望将函数调用/开销保持在最低限度。以下玩具示例,
require(data.table)
d_test<-data.table(id=c(1,1,2,7,2,3,5),
amt=c(100,200,400,600,231,-100,-200),
pay=c(-2,rep(1:3,2)),
key="id")
我正在寻找的输出相当于,作为vector或data.table,
unique(d_test[,.(id)])
或unique(d_test$id)
即c(1,2,3,5,7)
答案 0 :(得分:3)
另一种方式
k="id"
d2=unique(d_test, by=k)
set(d2, j=setdiff(names(d2),k), value=NULL)
d2
# id
#1: 1
#2: 2
#3: 3
#4: 5
#5: 7
#1269: Returning only groups实施后,这会更容易。
答案 1 :(得分:-1)
这样的事情会起作用吗?
d_test[,unique(get(key(d_test)))]