Подмножество фрейма данных для исключения 28 различных месяцев в R с помощью dplyr - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть фрейм данных, состоящий из месячных объемов, начиная с 2004-01-01 и заканчивая 2019-12-01. Мне нужно применить фильтр, который будет удалять строки, которые соответствуют определенным датам. Моя проблема в том, что есть 28 дат, которые мне нужно отфильтровать, и они не являются последовательными. То, что у меня есть сейчас, работает, но не эффективно. Я использую функцию фильтра dplyr.

В настоящее время у меня есть 28 переменных, d1-d28, которые являются датами, которые я бы хотел отфильтровать, а затем я использую

df<-data%>%dplyr::filter(Date!=d1 & Date!=d2 & Date!=d3 .......Date!=d28)

Я хотел бы поместите интересующие даты, d1-d28, в data.frame и просто ссылайтесь на data.frame в моем коде фильтра.

Я пробовал:

df<-data%>%dplyr::filter(!Date %in% DateFilter) 

Где DateFilter - это data.frame с 1 столбцом и 28 строками дат, которые я хочу отфильтровать, но я получаю сообщение об ошибке, в котором говорится длина объектов не совпадает.

Есть ли способ сделать это с помощью dplyr?

1 Ответ

0 голосов
/ 12 февраля 2020

Здесь мы можем использовать filter_at

library(dplyr)
data %>%
      filter_at(vars(matches('^d\\d+$')), all_vars(Date != .))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...