首页 > 解决方案 > 过滤唯一行忽略 NA

问题描述

这些是我的示例数据:

df <- data.frame("x" = c(1,1,2,3,4,NA,NA,6), "y"=c(1,1,6,7,8,9,9,10))

   x  y
1  1  1
2  1  1
3  2  6
4  3  7
5  4  8
6 NA  9
7 NA  9
8  6 10

我想删除重复的条目(=rows),但我想保留至少有一个 NA 的条目。因此,只应删除上面的第二行,而应保留第 7 行。unique(df, incomparables=NA)产生错误消息。

标签: r

解决方案


您可以使用complete.casesandduplicated来设置子集df

df[!complete.cases(df) | !duplicated(df),]
#   x  y
#1  1  1
#3  2  6
#4  3  7
#5  4  8
#6 NA  9
#7 NA  9
#8  6 10

推荐阅读