过滤与 R dplyr 中多个条件之一匹配的任何变量

M.w*_*wol -1 r filter dplyr

我正在参加泰坦尼克号 Kaggle 比赛并得到了简单的问题。如何过滤任何列中的 NA 和空值?我知道如何逐个变量地执行此操作,但想在过滤器语句中放置 2 个条件。到目前为止我得到了这个:

na_count = titanic.full %>%
  filter_at(vars(-Survived), any_vars(is.na(.)) || . == "")
Run Code Online (Sandbox Code Playgroud)

所以我真正想要实现的是在条形图上可视化每列中有多少个 NA 或“”(空),这样稍后我就可以输入丢失的数据。

谢谢 :)

Ron*_*hah 5

要过滤NA并清空所选列中的值,您可以使用filter_at

library(dplyr)
titanic.full %>% filter_at(vars(-Survived), any_vars(is.na(.) | . == ""))
Run Code Online (Sandbox Code Playgroud)

要计算每列中的值或空值的数量,NA我们可以使用summarise_all

titanic.full %>% summarise_all(~sum(is.na(.) | . == ""))

#  PassengerId Survived Pclass Name Sex Age SibSp Parch Ticket Fare Cabin Embarked
#1           0        0      0    0   0 177     0     0      0    0   687        2
Run Code Online (Sandbox Code Playgroud)