如何删除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 中向数据框添加行

添加评论

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