簡體   English   中英

為什么 dplyr 過濾器不捕獲 NA

[英]why is dplyr filter not capturing NA's

我有以下數據框

  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 ...

當我嘗試使用以下代碼捕獲 FileNumber 列或 Status 列中的NA值時。 但它似乎不起作用。 為什么會發生這種情況

  > 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)
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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM