就像标题中一样,我想删除所有我的因子列等于0的所有行。我发现,filter_if
可能可以这样做,但是我努力充分理解语法。好吧,据我了解,设置为.vars_predicate
的{{1}}参数应将all_vars(expr)
应用于使用expr
列选择的每个变量,并且仅在满足以下条件的情况下返回观察值:.predicate
他们全部。因此,当我按如下所示指定它时:
expr
它应该返回所有因子变量都不为0的行。但是,它行不通,并且我得到的是空数据集,这当然是不正确的。我在哪里犯错了?
我的数据集如下所示:
df %>% filter_if(~is.factor(.), all_vars(. != 0))
答案 0 :(得分:0)
很遗憾,我一开始没有想到,但是简单地添加is.na
似乎就可以了:
df %>% filter_if(~is.factor(.), all_vars(. != 0 | is.na(.)))