Ошибка фильтра Dplyr - PullRequest
       14

Ошибка фильтра Dplyr

0 голосов
/ 26 апреля 2018

Проблема:

У меня странная проблема с глаголом фильтра dplyr. Я пытаюсь отфильтровать data.frame по текущему месяцу и текущему году. Я создал реактивную функцию для обоих:

current.month <- reactive({
   gsub("0", " ", format(Sys.Date(), "%m"))
current.year <- reactive({
format(Sys.Date(), "%Y")

Когда я пытаюсь фильтровать по реактивному выражению, мой data.frame не возвращает никаких результатов. Это несмотря на тот факт, что столбец даты в моем data.frame имеет тип символа, как и реактивные значения current.month() & current.year().

Что у меня есть:

df[df$REPORT == input$dropdown.report, ] %>%
  filter(Month == current.month() & Year == current.year())

Это не возвращает никакого вывода.

Однако, когда я жестко закодировал входные данные, моя таблица возвращается без каких-либо проблем.

df[df$REPORT == input$dropdown.report, ] %>%
   filter(Month == "4" & Year == "2018")

Кто-нибудь может направить меня в правильном направлении? Вы можете воссоздать эту проблему с помощью набора данных радужной оболочки. Я понимаю, что вывод важен для воспроизводимого примера, но я не могу поделиться данными моей компании.

Edit:

Для целей подсчета в моем data.frame переменные даты разделены на 2 столбца: месяц, год. Месяц - это один символ без начального 0, поэтому мне нужно использовать функцию gsub выше.

1 Ответ

0 голосов
/ 26 апреля 2018

В current.month()

есть нежелательный space символ
> gsub("0", " ", format(Sys.Date(), "%m"))
[1] " 4"

Заменить 0 на ""

> gsub("0", "", format(Sys.Date(), "%m"))
[1] "4"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...