以下是我的例子:
mydf <- data.frame('col_1'=c('A','A','B','B','C','C','D','D'), 'col_2'=c(100,NA,90,30,50,60,10,NA))
col_1 col_2
1 A 100
2 A NA
3 B 90
4 B 30
5 C 50
6 C 60
7 D 10
8 D NA
我想删除按col_1
分组的NA值,以生成以下结果。
col_1 col_2
1 B 90
2 B 30
3 C 50
4 C 60
我该怎么办?
答案 0 :(得分:0)
我们可以按'col_1'分组然后filter
分组'col_2'没有'NA'
library(dplyr)
mydf %>%
group_by(col_1) %>%
filter(!any(is.na(col_2)))
或者使用all
mydf %>%
group_by(col_1) %>%
filter(all(!is.na(col_2)))
或者可以使用base R
subset(mydf, col_1 %in% names(which(!rowsum(+(is.na(col_2)),
group = col_1)[,1])))