Команда dplyr filter_at с пропущенными значениями - PullRequest
0 голосов
/ 09 апреля 2020


У меня вопрос по R и команде dplyr. У меня есть следующий фрейм данных df:

  ID   bank  type
  1    own   online
  2    own   offline
  3    NaN   total   

Теперь я хочу отфильтровать значение NaN в сочетании с типом «total». Я знаю, что могу легко фильтровать только столбцы банка, но мне было бы интересно объединить два столбца, где один - NaN. Моя команда не работает

vec <- c("total)
l1 <- df %>% filter_at(vars(type,bank), any_vars(!(.  %in% vec) && (!is.na(.))))
nrow(l1)

Вывод должен быть "1".

Заранее большое спасибо!

Ответы [ 2 ]

1 голос
/ 09 апреля 2020

Поскольку вы хотите использовать две разные функции в разных столбцах, вы должны использовать filter здесь:

library(dplyr)
df %>% filter(is.na(bank) & type  %in% vec)

, что также может быть сделано в базе R:

subset(df, is.na(bank) & type  %in% vec)
0 голосов
/ 09 апреля 2020

Вот вариант с data.table

library(data.table)
setDT(df)[is.na(bank) & type %in% vec]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...