编辑2019:此问题是在2016年11月data.table
更改之前提出的,请参见下面的接受答案,了解当前和以前的方法。
我有一个包含大约250万行的data.table
表格。有两列。我想删除在两列中都重复的任何行。以前对于数据框架,我会这样做:df -> unique(df[,c('V1', 'V2')])
但是这在data.table中不起作用。我尝试过unique(df[,c(V1,V2), with=FALSE])
,但它似乎仍然只在数据表的键上操作,而不是整个行。
有什么建议吗?
谢谢, Davy
示例
>dt
V1 V2
[1,] A B
[2,] A C
[3,] A D
[4,] A B
[5,] B A
[6,] C D
[7,] C D
[8,] E F
[9,] G G
[10,] A B
在上述的 data.table 中,其中
V2
是表格键,只有第 4、7 和 10 行将被删除。dt <- data.table::data.table(
V1 = c("B", "A", "A", "A", "A", "A", "C", "C", "E", "G"),
V2 = c("A", "B", "B", "B", "C", "D", "D", "D", "F", "G"),
)
dt[, .N,by=.(V1,V2)][,1:2]
语句。 - Akki