我有一个数据框,其中一列显示类别,另外 3 列(col1、col2 和 col3)。
我需要找出哪些类别只有 col1、col2 或 col3 的 NA(这是 cat1,因为 col3 和 cat3 中的 NA,因为 col1 中的 NA。cat2 在 col1、col2 和 col3 中的每个中包含 no 或 yes,因此不包括在内)。
col1 <- c("yes","no","yes","no",NA,NA,NA)
col2 <- c(NA,NA,"yes","no","yes","no",NA)
col3 <- c(NA,"yes",NA,"no","yes","no","yes")
cat <- c("cat1","cat2","cat1","cat2","cat3","cat3","cat3")
df <- data.frame(cat,col1,col2,col3)
end_result <-c("cat1","cat3")
我希望结果显示为矢量,如上所示。
一种使用cat
across
分组的方法,然后检查是否有任何列具有所有条目。最后用过滤器把它们拉出来。NA
沿着相同思路的基本R方法
dplyr
1.0.4针对此类场景添加了if_any/if_all :