如何删除r中特定列中带有na的行
您可以使用以下三种方法之一来删除 R 中数据帧的特定列中带有 NA 的行:
#use is.na() method df[!is. na (df$col_name),] #use subset() method subset(df, !is. na (col_name)) #use tidyr method library (tidyr) df %>% drop_na(col_name)
请注意,这些方法中的每一种都会产生相同的结果。
以下示例展示了如何在实践中使用以下数据框使用每种方法:
#create data frame df <- data. frame (a = c(NA, 14, 19, 22, 26), b = c(14, NA, 9, NA, 5), c = c(45, 56, 54, 57, 59)) #view data frame df ABC 1 NA 14 45 2 14 NA 56 3 19 9 54 4 22 NA 57 5 26 5 59
方法 1:使用 is.na() 删除带有 NA 的行
以下代码展示了如何使用is.na()方法从数据框中删除特定列中具有 NA 值的行:
#remove rows from data frame with NA values in column 'b' df[!is. na (df$b),] ABC 1 NA 14 45 3 19 9 54 5 26 5 59
方法 2:使用subset() 删除带有 NA 的行
下面的代码展示了如何使用subset()方法从数据框中删除某一列中具有NA值的行:
#remove rows from data frame with NA values in column 'b' subset(df, !is. na (b)) ABC 1 NA 14 45 3 19 9 54 5 26 5 59
方法 3:使用 drop_na() 删除带有 NA 的行
以下代码展示了如何使用drop_na()方法从数据框中删除特定列中具有 NA 值的行:
library (tidyr)
#remove rows from data frame with NA values in column 'b'
df %>% drop_na(b)
ABC
1 NA 14 45
3 19 9 54
5 26 5 59
请注意,这三种方法均产生相同的结果。
注意:您可以在此处找到 drop_na() 方法的完整在线文档。
其他资源
如何将函数应用于R中数据框的每一行
如何在 R 中检索行号
如何在 R 中向数据框添加行