我正在尝试过滤出多列中具有NA值的行。只有当所有感兴趣的列都是NA时,才应该删除一行。
场景与这个问题相同(但我没有足够的名气来发表评论):
基于多列NA的数据帧过滤
其中一个解决方案是使用:
library(dplyr) df_non_na <- df %>% filter_at(vars(type,company),all_vars(!is.na(.)))
从“过滤器”开始
_
在“正在以dplyr进行折旧”时,我如何使用"filter“和”dplyr“来实现类似的结果?
上云精选
2核2G云服务器 每月9.33元起,个人开发者专属3年机 低至2.3折
我们可以使用
循环遍历列'type‘、'company’并返回在指定列中没有任何NA的行
library(dplyr) df %>% filter(across(c(type, company), ~ !is.na(.))) # id type company #1 3 North Alex #2 NA North BDA
使用
,有两个选项类似于
与一起使用
df %>% filter(if_any(c(company, type), ~ !is.na(.))) # id type company #1 2 ADM #2 3 North Alex #3 4 South #4 NA North BDA #5 6 CA
或者使用
df %>% filter(if_all(c(company, type), ~ !is.na(.)))