Как отфильтровать данные с помощью dplyr для извлечения NA вместе с другим значением? - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть набор данных, который выглядит следующим образом

X      Y      
121    Yes
122    No
123    NA
124    Yes
125    NA

Как я могу отфильтровать значения "Да" из столбца Y? Я хочу только 'Нет' и 'NA'

Мой желаемый вывод - это

X      Y      
122    No
123    NA
125    NA

Я пробовал

data2 <- data %>% filter(Y != "Yes") #But I lose my NAs with this command.

& 

data2 <- data %>% filter(Y %in% c(is.na(Y), "No")  #Doesn't work

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 04 февраля 2020
data2 <- data %>% filter(is.na(Y) | Y == "No")  

Строка означает «или». Ваша ошибка заключалась в том, что is.na (Y) возвращает значение ИСТИНА или ЛОЖЬ, и эти значения отсутствуют в ваших данных.

0 голосов
/ 04 февраля 2020

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

subset(data, Y == "No"|is.na(Y))

данные

data <- structure(list(X = 121:125, Y = c("Yes", "No", NA, "Yes", NA)), 
    class = "data.frame", row.names = c(NA, 
-5L))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...