Return 行同时具有 NA 和值

Return rows with both NA and a value at once

我有一个df

ID <- c(101,102,103,104) 
Status <- c('P','F_Avg','F_Sig',NA) 
df <- data.frame(ID,Status)

我正在尝试过滤失败的,return Pass 和 NA,但我无法这样做。我知道这是一个基本问题,但请耐心等待并帮助我。

我尝试了以下

df1 <-  sqldf("SELECT * FROM df
              WHERE Status NOT LIKE 'F%'")

它 return 只有一个观察结果,即第 1 行 'P' 但我还需要第 4 行 'NA'。

你的sql必须是这样的:

SELECT * FROM df
WHERE Status NOT LIKE 'F%'
or status = 'NA'

我不确定你是如何在 r 中实现的。

df1 <-  sqldf("SELECT * FROM df
              WHERE (Status NOT LIKE 'F%'
              OR Status IS null)")

输出:

   ID Status
1 101      P
2 104   <NA>

使用dplyr:

library(dplyr)
filter(df, !grepl("^F", Status))