Фильтровать любые переменные, которые соответствуют одному из нескольких условий в R dplyr - PullRequest
0 голосов
/ 07 марта 2020

Я участвую в соревнованиях Titani c Kaggle и получил легкий вопрос. Как отфильтровать для NA и пустые значения в любых столбцах? Я знаю, как сделать это переменная за переменной, но хочу поставить 2 условия в выражении фильтра. я получил это до сих пор:

na_count = titanic.full %>%
  filter_at(vars(-Survived), any_vars(is.na(.)) || . == "")

Итак, чего я действительно хочу достичь, так это визуализировать на барплоте, сколько NA или "" (пусто) есть в каждом столбце, поэтому позже я могу go вменять недостающие данные.

спасибо:)

Ответы [ 2 ]

3 голосов
/ 07 марта 2020

Чтобы отфильтровать NA и пустые значения из выбранных столбцов, вы можете использовать filter_at как:

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

Для подсчета количества 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
0 голосов
/ 07 марта 2020

В base R мы можем использовать rowSums

nm1 <- setdiff(names(titanic.full), 'Survived')
titanic.full[rowSums(is.na(titanic.full[nm1])| titanic.full[nm1] == "") > 0,\
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...