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))
我有一个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))