如何在 r 中删除具有部分或全部 na 的行


通常,您可能希望删除 R 数据框中包含部分或全部 NA(缺失值)的行。

本教程介绍如何使用 Basic R 和Tidyr包删除这些行。我们将为以下每个示例使用以下数据框:

 #create data frame with some missing values
df <- data.frame(points = c(12, NA, 19, 22, 32),
                 assists = c(4, NA, 3, NA, 5),
                 rebounds = c(5, NA, 7, 12, NA))

#view data frame
df

  points assists rebounds
1 12 4 5
2 NA NA NA
3 19 3 7
4 22 NA 12
5 32 5 NA

使用 Base R 删除 NA

以下代码显示如何使用complete.cases()删除数据框中列缺少值的所有行:

 #remove all rows with a missing value in any column
df[ complete.cases (df),]

  points assists rebounds
1 12 4 5
3 19 3 7

以下代码显示如何使用complete.cases()删除数据框中特定列中缺少值的所有行:

 #remove all rows with a missing value in the third column
df[ complete.cases (df[,3]),]

  points assists rebounds
1 12 4 5
3 19 3 7
4 22 NA 12

#remove all rows with a missing value in either the first or third column
df[ complete.cases (df[ , c(1,3)]),]

  points assists rebounds
1 12 4 5
3 19 3 7
4 22 NA 12

使用 Tidyr 删除 NA

以下代码显示如何使用 Tidyr 包中的drop_na()删除数据框中列中缺少值的所有行:

 #load tidyr package
library(tidyr)

#remove all rows with a missing value in any column
df %>% drop_na()

  points assists rebounds
1 12 4 5
3 19 3 7

以下代码显示如何使用 Tidyr 包中的drop_na()删除数据框中特定列中缺少值的所有行:

 #load tidyr package
library(tidyr)

#remove all rows with a missing value in the third column
df %>% drop_na(rebounds)

  points assists rebounds
1 12 4 5
3 19 3 7
4 22 NA 12

您可以在此处找到更多 R 教程。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注