Dplyr を使用して重複要素を見つける方法


dplyr を使用してデータ フレーム内の重複要素を見つけるには、次の方法を使用できます。

方法 1: 重複する行をすべて表示する

 library (dplyr)

#display all duplicate rows
df %>%
  group_by_all() %>%
  filter(n()> 1 ) %>%
  A group()

方法 2: すべての重複行の重複数を表示する

 library (dplyr)

#display duplicate count for all duplicated rows
df %>%
  add_count(col1, col2, col3) %>%
  filter(n> 1 ) %>%
  distinct()

このチュートリアルでは、次のデータ フレームを使用して各メソッドを実際に使用する方法を説明します。

 #create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 points=c(10, 10, 8, 14, 15, 15, 17, 17))

#view data frame
df

  team position points
1 AG 10
2 AG 10
3AF 8
4 AF 14
5 BG 15
6 BG 15
7 BF 17
8 BF 17

例 1: 重複する行をすべて表示する

次のコードは、データ フレーム内のすべての重複行を表示する方法を示しています。

 library (dplyr)

#display all duplicate rows in data frame
df %>%
  group_by_all() %>%
  filter(n()> 1 ) %>%
  A group()

# A tibble: 6 x 3
  team position points
        
1 AG 10
2 AG 10
3 BG 15
4 BG 15
5 BF 17
6 BF 17

結果は、それぞれが重複行である 6 行を含むデータ フレームになります。

: 特定の列に重複する値を持つ行のみを知りたい場合は、代わりにgroup_by(team)のようなものを使用して、チーム列にのみ重複する値を持つ行を検索できます。

例 2: すべての重複行の重複数を表示します。

次のコードは、データ フレーム内のすべての重複行の重複数を表示する方法を示しています。

 library (dplyr)

#display duplicate count for each row
df %>%
  add_count(team, position, points) %>%
  filter(n> 1 ) %>%
  distinct()

  team position points n
1 GA 10 2
2 BG 15 2
3 BF 17 2

nには、各行の重複の合計数が表示されます。

例えば:

  • 値 A、G、および 10 を含む行がデータ ブロック内に2回表示されます。
  • 値 B、G、および 15 を含む行がデータ ブロック内に2回表示されます。
  • 値 B、F、および 17 を含む行がデータ ブロック内に2回表示されます。

: 特定の列に重複した値を持つ行のみを知りたい場合は、 add_count()関数にそれらの特定の列のみを含めます。

追加リソース

次のチュートリアルでは、R で他の一般的なタスクを実行する方法について説明します。

dplyrを使用して一意の値をフィルタリングする方法
dplyrを使って複数の条件でフィルタリングする方法
R の列の出現数をカウントする方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です