如果 x 或 y 是 NA,我想保留包含 NA 的行并丢弃 x 和 y 都不是 NA 的行。我尝试过dplyr::filter()、purrr::keep()以及更多,但没有任何效果。必须有条件地执行此操作,而不是按行号执行此操作,因为我的数据集太大了。
library(tibble, quietly = T, warn.conflicts = F)
library(dplyr, quietly = T, warn.conflicts = F)
df <- tribble(
~name, ~x, ~y,
"id_1", 1, NA,
"id_2", 3, NA,
"id_3", NA, 29,
"id_4", -99, 0,
"id_5", -98, 28,
) %>%
mutate(name = factor(name))
df
#> # A tibble: 5 x 3
#> name x y
#> <fct> <dbl> <dbl>
#> 1 id_1 1 NA
#> 2 id_2 3 NA
#> 3 id_3 NA 29
#> 4 id_4 -99 0
#> 5 id_5 -98 28
Run Code Online (Sandbox Code Playgroud)
创建于 2022 年 11 月 21 日,使用reprex v2.0.2
目标是保留第 1 到第 3 行。
MrF*_*ick 12
您可以使用filter()withif_any来过滤具有 NA 值的行。例如
df %>% filter(if_any(everything(), is.na))
Run Code Online (Sandbox Code Playgroud)
如果您只想使用一系列列而不是全部,您可以使用
df %>% filter(if_any(c(x, y), is.na))
df %>% filter(if_any(x:y, is.na))
df %>% filter(if_any(-name, is.na))
Run Code Online (Sandbox Code Playgroud)
例如
| 归档时间: |
|
| 查看次数: |
6110 次 |
| 最近记录: |