Dplyr を使用して行を削除する方法 (例あり)


dplyr を使用して R のデータ フレームから行を削除するには、次の基本構文を使用できます。

1. NA の行を削除します。

 df %>%
  n / A. omit ()

2. 特定の列の NA を持つ行を削除します。

 df %>%
filter( ! is. na (column_name))

3. 重複を削除する

 df %>%
  distinct()

4. インデックス位置による行の削除

 df %>%
filter( ! row_number() %in% c(1, 2, 4))

5. 条件に基づいて行を削除します

 df %>%
  filter(column1 == ' A ' | column2 > 8)

次の例は、次のデータ フレームでこれらの各メソッドを実際に使用する方法を示しています。

 library (dplyr)

#create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C', 'C'),
                 points=c(4, NA, 7, 5, 9, 9),
                 assists=c(1, 3, 5, NA, 2, 2))

#view data frame
df

  team points assists
1 to 4 1
2 A NA 3
3 B 7 5
4 B 5 NA
5 C 9 2
6 C 9 2

例 1: NA を含む行を削除する

次のコードは、NA 値を含む行をデータ フレームから削除する方法を示しています。

 #remove any row with NA
df %>%
  n / A. omit ()

  team points assists
1 to 4 1
3 B 7 5
5 C 9 2
6 C 9 2

例 2: 特定の列の NA を持つ行を削除する

次のコードは、特定の列に NA 値を含む行を削除する方法を示しています。

 #remove any row with NA in 'points' column:
df %>%
  filter( ! is. na (dots))

  team points assists
1 to 4 1
2 B 7 5
3 B 5 NA
4 C 9 2
5 C 9 2

例 3: 重複行を削除する

次のコードは、重複した行を削除する方法を示しています。

 #remove duplicate rows
df %>%
  distinct()

  team points assists
1 to 4 1
2 A NA 3
3 B 7 5
4 B 5 NA
5 C 9 2

例 4: インデックス位置による行の削除

次のコードは、インデックスの位置に基づいて行を削除する方法を示しています。

 #remove rows 1, 2, and 4
df %>%
filter( ! row_number() %in% c(1, 2, 4))

  team points assists
1 B 7 5
2 C 9 2
3 C 9 2

例 5: 条件に基づいて行を削除する

次のコードは、特定の条件に基づいて行を削除する方法を示しています。

 #only keep rows where team is equal to 'A' or points is greater than 8
df %>%
  filter(column1 == ' A ' | column2 > 8)

  team points assists
1 to 4 1
2 A NA 3
3 C 9 2
4 C 9 2

追加リソース

次のチュートリアルでは、dplyr で他の一般的な機能を実行する方法を説明します。

dplyrを使用してインデックスによって列を選択する方法
dplyr を使用して変数をグループ別に並べ替える方法
dplyr で NA をゼロに置き換える方法

コメントを追加する

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