使用`duplicated`函数来识别带有键的`data.table`中的重复行

时间:2014-03-13 05:11:00

标签: r data.table

我正在尝试确定data.table中重复的行。这是我使用的示例代码。

a<-c(1,2,3,3,5)
b<-c(6,7,8,9,10)
require(data.table)
DT<-data.table(a,b)
setkey(DT,a)
DT
#   a  b
# 1: 1  6
# 2: 2  7
# 3: 3  8
# 4: 3  9
# 5: 5 10
setkey(DT,a)
duplicated(DT)
# [1] FALSE FALSE FALSE  TRUE FALSE

正如您所看到的,我将第4行标识为重复行,这是不正确的,因为DT [3:4,&#34; b&#34;,= = FALSE]不同。我使用duplicated函数错了吗?

1 个答案:

答案 0 :(得分:4)

duplicated.datatable有一个by参数,默认为键列

因此,如果您将其设置为考虑所有列,它将按您的意愿执行

duplicated(DT, by = names(DT))
# [1] FALSE FALSE FALSE FALSE FALSE