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 で他の一般的な関数を実行する方法について説明します。

条件に基づいてRで行を削除する方法
Rの特定の列でNAの行を削除する方法

コメントを追加する

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