处理重复

# example data
DT = data.table(id = c(1,2,2,3,3,3))[, v := LETTERS[.I]][]

要处理重复,请组合计数行并按组对行进行子集化

每组保留一行

Akadrop duplicates 又名 deduplicate 又名 uniquify

unique(DT, by="id")
# or
DT[, .SD[1L], by=id]
#    id v
# 1:  1 A
# 2:  2 B
# 3:  3 D

这保留了第一行。要选择不同的行,可以使用 1L 部分或在 i 中使用 order

只保留唯一的行

DT[, if (.N == 1L) .SD, by=id]
#    id v
# 1:  1 A

只保留不唯一的行

DT[, if (.N > 1L) .SD, by=id]
#    id v
# 1:  2 B
# 2:  2 C
# 3:  3 D
# 4:  3 E
# 5:  3 F