Indicator Name Examine
1 Alpha NA
2 Beta 2013
3 Beta 2017
4 Beta NA
5 Charlie 2013
6 Charlie 2017
7 Charlie NA
8 Delta 2016
9 Echo 2016
10 <NA> NA
11 <NA> NA
12 Foxtrot 2007
13 Foxtrot NA
在这里,如果NA
有多个条目,则我要删除Examine
中存在Indicator Name
的行,{{ 1}}。
因此,第4、7和13行将被删除。
样本df:
NA
答案 0 :(得分:3)
按“指标名称”分组后,在filter
中创建一个条件,以删除NA元素或保留all
元素为NA
的条件
library(dplyr)
df %>%
group_by(`Indicator Name`) %>%
filter(!is.na(Examine)| all(is.na(Examine)))
或者在base R
df[with(df, ave(is.na(Examine), `Indicator Name`, FUN = function(x) !x|all(x))),]