Dplyrを使用してna値を持つ行を削除する方法


dplyrパッケージの次のメソッドを使用して、NA 値を持つ行を削除できます。

方法 1: 任意の列で NA 値を持つ行を削除する

 library (dplyr)

#remove rows with NA value in any column
df %>%
  n / A. omit ()

方法 2: 特定の列で NA 値を持つ行を削除する

 library (dplyr)

#remove rows with NA value in 'col1' or 'col2'
df %>%
  filter_at(vars(col1, col2), all_vars( ! is. na (.)))

方法 3: 特定の列の NA 値を持つ行を削除する

 library (dplyr)

#remove rows with NA value in 'col1'
df %>%
  filter( ! is. na (col1))

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

 #create data frame with some missing values
df <- data. frame (team=c('A', 'A', 'B', 'B', 'C'),
                 points=c(99, 90, 86, 88, NA),
                 assists=c(33, NA, 31, 39, 34),
                 rebounds=c(NA, 28, 24, 24, 28))

#view data frame
df

  team points assists rebounds
1 A 99 33 NA
2 A 90 NA 28
3 B 86 31 24
4 B 88 39 24
5 C NA 34 28

方法 1: 任意の列で NA 値を持つ行を削除する

次のコードは、データ フレームの任意の列で NA 値を持つ行を削除する方法を示しています。

 library (dplyr)

#remove rows with NA value in any column
df %>%
  n / A. omit ()

  team points assists rebounds
3 B 86 31 24
4 B 88 39 24

残っている 2 行のみは、どの列にも NA 値が含まれていない行です。

方法 2: 特定の列で NA 値を持つ行を削除する

次のコードは、データ フレームの任意の列で NA 値を持つ行を削除する方法を示しています。

 library (dplyr)

#remove rows with NA value in 'points' or 'assists' columns
df %>%
  filter_at(vars(points, assists), all_vars( ! is. na (.)))

  team points assists rebounds
1 A 99 33 NA
2 B 86 31 24
3 B 88 39 24

残っている行は、「ポイント」列または「アシスト」列に NA 値が含まれていない行のみです。

方法 3: 特定の列の NA 値を持つ行を削除する

次のコードは、データ フレームの特定の列で NA 値を持つ行を削除する方法を示しています。

 library (dplyr)

#remove rows with NA value in 'points' column
df %>%
  filter( ! is. na (dots))

  team points assists rebounds
1 A 99 33 NA
2 A 90 NA 28
3 B 86 31 24
4 B 88 39 24

残っている行は、「ポイント」列に NA 値がない行のみです。

追加リソース

次のチュートリアルでは、dplyr を使用して他の一般的な操作を実行する方法について説明します。

dplyr: 特定の文字列を含む行をフィルタリングする方法
dplyr: NA 値をゼロに置き換える方法
dplyr: 「含まれていない」フィルターの使用方法

コメントを追加する

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