[英]In dplyr filter rows with number of NA bigger than one
This is my code:这是我的代码:
airquality %>% filter(across(everything(), ~ sum(is.na(.x)) > 1))
I am trying to filter the rows with more than one NAs.我正在尝试过滤具有多个 NA 的行。
The only way I achieve this was using mutate
function.我实现这一目标的唯一方法是使用
mutate
function。
airquality %>% rowwise() %>% mutate(n_NA = sum(is.na(across(everything())))) %>%
filter(n_NA > 1)
But its not a clever way.但这不是一个聪明的方法。
I need to use only filter
function.我只需要使用
filter
function。
Any help?有什么帮助吗?
We can use rowSums
to create a logical expression within filter
我们可以使用
rowSums
在filter
中创建逻辑表达式
library(dplyr)
airquality %>%
filter(rowSums(is.na(.)) > 1)
-output -输出
# Ozone Solar.R Wind Temp Month Day
#1 NA NA 14.3 56 5 5
#2 NA NA 8.0 57 5 27
Or with rowwise
and c_across
或使用
rowwise
和c_across
airquality %>%
rowwise %>%
filter(sum(is.na(c_across(everything()))) > 1)
# A tibble: 2 x 6
# Rowwise:
# Ozone Solar.R Wind Temp Month Day
# <int> <int> <dbl> <int> <int> <int>
#1 NA NA 14.3 56 5 5
#2 NA NA 8 57 5 27
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.