给出一个小的数据集,如下所示:
private static service
如何根据以下条件删除行:A B C
1 2 NA
NA 2 3
1 NA 3
1 2 3
和B
列有C
?
预期结果如下:
NA
答案 0 :(得分:2)
使用base R
:
df[!is.na(df$B) & !is.na(df$C),]
使用dplyr
:
df %>%
filter(!is.na(B), !is.na(C))
返回
# A tibble: 2 x 3
A B C
<dbl> <dbl> <dbl>
1 NA 2 3
2 1 2 3
或
df %>%
drop_na(B, C)
答案 1 :(得分:2)
Base R中的另一个选项是
df[complete.cases(df[c("B","C")]),]
A B C
2 NA 2 3
4 1 2 3