почему фильтр dplyr не захватывает NA - PullRequest
1 голос
/ 10 марта 2020

У меня есть следующий фрейм данных

  FileNumber ReferralDate Status
1  510709784   2018-10-07 CLOSED
2         NA         <NA>   <NA>
3  510704781   2018-05-04 CLOSED
4         NA         <NA>   <NA>
5         NA         <NA>   <NA>
6         NA         <NA>   <NA>

Это структура фрейма данных

'data.frame':   6 obs. of  3 variables:
 $ FileNumber  : int  510709784 NA 510704781 NA NA NA
 $ ReferralDate: chr  "2018-10-07" NA "2018-05-04" NA ...
 $ Status      : chr  "CLOSED" NA "CLOSED" NA ...

, когда я пытаюсь захватить значения NA в любом из столбцов FileNumber или столбец Status, используя следующий код. Но это не похоже на работу. Почему это происходит

  > df%>%filter(Status=="<NA>")
[1] FileNumber   ReferralDate Status      
<0 rows> (or 0-length row.names)
> df%>%mutate(Status=as.factor(Status))%>%filter(Status=="<NA>")
[1] FileNumber   ReferralDate Status      
<0 rows> (or 0-length row.names)
> df%>%filter(FileNumber=="NA")
[1] FileNumber   ReferralDate Status      
<0 rows> (or 0-length row.names)

1 Ответ

1 голос
/ 10 марта 2020
library(dplyr)

df <- data.frame(FileNumber = c(510709784, NA, 510704781, NA, NA, NA),
                 ReferralDate = c("2018-10-07", NA, "2018-05-04", NA, NA, NA),
                 Status = c("CLOSED", NA, "CLOSED", NA, NA, NA),
                 stringsAsFactors = FALSE)

Используйте is.na() для обозначения NA, а не ==

df %>% filter(is.na(Status))
  FileNumber ReferralDate Status
1         NA         <NA>   <NA>
2         NA         <NA>   <NA>
3         NA         <NA>   <NA>
4         NA         <NA>   <NA>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...