R で重複行を削除して何も残らないようにする方法
R で次のメソッドを使用して、データ フレームから重複行を削除し、結果のデータ フレームに何も残らないようにすることができます。
方法 1: Base R を使用する
new_df <- df[ ! (duplicated(df) | duplicated(df, fromLast= TRUE )), ]
方法 2: dplyr を使用する
library (dplyr) new_df <- df %>% group_by(across(everything())) %>% filter(n() == 1 )
次の例は、次のデータ フレームで各メソッドを実際に使用する方法を示しています。
#create data frame df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'), points=c(20, 20, 28, 14, 13, 18, 27, 13)) #view data frame df team points 1 to 20 2 to 20 3 to 28 4 to 14 5 B 13 6 B 18 7 B 27 8 B 13
例 1: Base R を使用する
次のコードは、R 基本関数を使用してデータ フレームから重複行を削除し、何も残らないようにする方法を示しています。
#create new data frame that removes duplicates so none are left
new_df <- df[ ! (duplicated(df) | duplicated(df, fromLast= TRUE )), ]
#view new data frame
new_df
team points
3 to 28
4 to 14
6 B 18
7 B 27
重複した各行はデータ フレームから削除されており、重複は保持されないことに注意してください。
例 2: dplyr の使用
次のコードは、R のdplyrパッケージの関数を使用してデータ フレームから重複行を削除し、何も残らないようにする方法を示しています。
library (dplyr)
#create new data frame that removes duplicates so none are left
new_df <- df %>%
group_by(across(everything())) %>%
filter(n() == 1 )
#view new data frame
new_df
# A tibble: 4 x 2
# Groups: team, points [4]
team points
1 to 28
2 to 14
3 B 18
4 B 27
重複した各行はデータ フレームから削除されており、重複は保持されないことに注意してください。
また、これにより前の方法と同じ結果が生成されることにも注意してください。
注: 非常に大きなデータ フレームの場合、dplyr メソッドは基本の R メソッドよりも高速になります。
追加リソース
次のチュートリアルでは、R で他の一般的な関数を実行する方法について説明します。