检索data.table使用的(唯一)键

时间:2016-07-14 13:34:35

标签: r data.table

当它作为单个列提供时,是否有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)

2 个答案:

答案 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)))]