如何在 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 教程。