我有一個data.table
表,大約有250萬行。有兩列。我想刪除兩列中重複的行。以前對於data.frame我會這樣做: df -> unique(df[,c('V1', 'V2')])
但這不適用於data.table。我試過unique(df[,c(V1,V2), with=FALSE])
,但它似乎仍然只對data.table的鍵而不是整行進行操作。在data.table中過濾出重複/非唯一的行
有什麼建議嗎?
乾杯, 戴維
例
>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將被移除。
> dput(dt)
structure(list(V1 = c("B", "A", "A", "A", "A", "A", "C", "C",
"E", "G"), V2 = c("A", "B", "B", "B", "C", "D", "D", "D", "F",
"G")), .Names = c("V1", "V2"), row.names = c(NA, -10L), class = c("data.table",
"data.frame"), .internal.selfref = <pointer: 0x7fb4c4804578>, sorted = "V2")
沒有使用獨特的'dt [,.N,by =。(V1,V2)] [,1:2]' – Akki 2017-12-22 11:14:06