2015-07-17 1 views
0

У меня есть ФРВозврат строки как с NA и значением сразу

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

Я пытаюсь фильтровать неудачные из них и вернуться как Pass и NA, но я не в состоянии сделать это. Я знаю, что это основной вопрос, но, пожалуйста, несите меня и помогите мне.

Я попробовал следующее

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

и возвращает лишь одно наблюдение, и это row1 что «P», но мне также нужно row4 «NA».

+0

объявить 'NA' в виде строки. –

+0

Это просто пример. У меня есть больший набор дат, в котором есть NA, и я хочу применить изучение этого примера к более крупному. Я не хочу объявлять как строку – Sharath

+0

вы можете сделать 'или is.na (status) = TRUE' в предложении' where' в R? –

ответ

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

Ваш SQL должен быть таким:

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

Я не знаю, как вы добиться того, что в р.

 Смежные вопросы

  • Нет связанных вопросов^_^