編集 2019: この質問はdata.table
、2016 年 11 月の変更前に尋ねられました。現在の方法と以前の方法の両方について、以下の受け入れられた回答を参照してください。
data.table
約 250 万行のテーブルがあります。2 つの列があります。両方の列で重複している行を削除したい。以前は、data.frame に対してこれを行っていまし
df -> unique(df[,c('V1', 'V2')])
たが、これは data.table では機能しません。試してみunique(df[,c(V1,V2), with=FALSE])
ましたが、行全体ではなく、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")