31

PHP についても同様の質問がありますが、私は R を使用しており、解決策を私の問題に変換できません。

このデータ フレームは 10 行と 50 列で、一部の行は完全に同一です。その上でuniqueを使用すると、「タイプ」ごとに1行を取得しますが、実際に必要なのは、一度だけ表示される行のみを取得することです。どうすればこれを達成できるか知っている人はいますか?

クラスターとヒートマップを見て手動で並べ替えることができますが、上記のデータ フレームよりも大きなデータ フレーム (最大 100 行) があり、これが少し難しくなります。

4

3 に答える 3

78

これにより、一度だけ表示される行が抽出されます(データフレームに名前が付けられていると仮定しますdf)。

df[!(duplicated(df) | duplicated(df, fromLast = TRUE)), ]

仕組み:この関数duplicatedは、1行目から少なくとも2回目は行が表示されるかどうかをテストします。引数fromLast = TRUEを使用すると、関数は最後の行から始まります。

両方のブール結果が(論理'または')と組み合わさ|れて、すべての行が複数回出現することを示す新しいベクトルになります。これの結果は、を使用して否定され、!それによって、1回だけ出現する線を示すブールベクトルが作成されます。

于 2012-12-07T12:40:54.467 に答える