【发布时间】:2020-06-24 11:04:53
【问题描述】:
给定一个小数据集如下:
A B C
1 2 NA
NA 2 3
1 NA 3
1 2 3
如何根据条件删除行:B 和 C 列有 NAs?
预期的结果是这样的:
A B C
NA 2 3
1 2 3
【问题讨论】:
标签: r
给定一个小数据集如下:
A B C
1 2 NA
NA 2 3
1 NA 3
1 2 3
如何根据条件删除行:B 和 C 列有 NAs?
预期的结果是这样的:
A B C
NA 2 3
1 2 3
【问题讨论】:
标签: r
Base R 中的另一个选项是
df[complete.cases(df[c("B","C")]),]
A B C
2 NA 2 3
4 1 2 3
【讨论】:
na.omit(df, cols = c("B", "C")) 似乎也有效。
与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)
【讨论】: