Могу ли я сократить df [! Is.na (df $ val) & df $ val> 15]? - PullRequest
3 голосов
/ 31 марта 2019

У меня есть фрейм данных, из которого я хочу извлечь записи, в которых значение в val больше 15, а те, чье val не равно NA:

 df[ !is.na(df$val) & df$val > 15, ]

, так как я предполагаючто такое сравнение часто требуется в R, мне интересно, можно ли это сравнение каким-то образом сократить.На самом деле, я бы не удивился, если бы этот вопрос уже задавался в StackOverflow - но я не смог найти поиск, который его нашел.

1 Ответ

5 голосов
/ 31 марта 2019

subset пропускает значения NA, а также избегает повторения df:

subset(df, val > 15)

which также исключает значения NA, но df необходимо повторить:

df[which(df$val > 15), ]

Пакет dplyr filter подобен базе subset:

library(dplyr)

df %>% filter(val > 15)

При использовании sqldf значения NA сбрасываются.

library(sqldf)

sqldf("select * from df where val > 15")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...