[英]Remove NA values with a group
这是我的示例:
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
我该怎么做?
我们可以按“ col_1”分组,然后filter
没有“ NA”的“ col_2”
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])))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.