[解決済み] data.table内の重複・非一意な行のフィルタリング
質問
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のキーにのみ作用し、行全体には作用しないようです。
何か提案はありますか?
乾杯 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行目のみが削除されます。
> 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")
どのように解決するのですか?
v1.9.8+の場合 ( 2016年11月リリース )
から
?unique.data.table
デフォルトではすべてのカラムが使用されています(これは
?unique.data.frame
)
unique(dt)
V1 V2
1: A B
2: A C
3: A D
4: B A
5: C D
6: E F
7: G G
あるいは
by
引数を使用して、特定のカラムの一意な組み合わせを取得することもできます (以前はキーが使用されていたようなものです)。
unique(dt, by = "V2")
V1 V2
1: A B
2: A C
3: A D
4: B A
5: E F
6: G G
v1.9.8以前のバージョン
から
?unique.data.table
を呼び出すことは明らかです。
unique
を呼び出すと、キーにのみ作用することは明らかです。つまり、すべてのカラムのキーをリセットしてから
unique
.
library(data.table)
dt <- data.table(
V1=LETTERS[c(1,1,1,1,2,3,3,5,7,1)],
V2=LETTERS[c(2,3,4,2,1,4,4,6,7,2)]
)
呼び出し
unique
を1つのカラムをキーとして呼び出す。
setkey(dt, "V2")
unique(dt)
V1 V2
[1,] B A
[2,] A B
[3,] A C
[4,] A D
[5,] E F
[6,] G G
関連
-
R: hclust(d, method = method)でのエラー : 外部関数呼び出しは NA/NaN/Inf(arg10) を持つことができません。
-
[解決策】 plot.new() のエラー:図の余白が大きすぎる。
-
R - ユークリッド距離の計算を簡単にする方法
-
[解決済み] 重複した行を削除する
-
[解決済み] R dataframeでNAの値をゼロに置き換えるには?
-
[解決済み] ggplot2 の軸ラベルを回転させ、間隔を空ける
-
[解決済み] ggplotで凡例のタイトルを変更する方法
-
[解決済み] Rで文字列から最後のn文字を抽出する
-
[解決済み] [Solved] data.frameのカラムをベクトルに変換する?
-
[解決済み] data.tableにキーを設定する目的は何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Rでファイルを読み込む際に、そのようなファイルまたはディレクトリが見つかりません。
-
Rでエラー:単項演算子への引数が無効
-
[R] is.data.frame(x) のエラー : (リスト) オブジェクトを 'double' 型に強制できない。
-
R言語ダウンロード機能 download.fileとダウンロード解析
-
[解決済み] lm.fit(x,y,offset = offset, singular.ok,...) 0 非NAケースでboxcox式で計算するとエラーになる。
-
[解決済み] require()とlibrary()の違いは何ですか?
-
[解決済み] 非常に大きなテーブルをデータフレームとして高速に読み込む
-
[解決済み] Rでロードされているパッケージのバージョンを調べるには?
-
[解決済み] ベクトル中のxの値を持つ要素の個数を数える
-
[解決済み] テーブルをデータフレームに変換する方法