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 の列の出現数をカウントする方法