Я сталкиваюсь с проблемой, которую не могу полностью решить, когда фильтрую данные в блестящем.
Я отображаю два фрейма данных, во-первых, это все строки фрейма данных, отфильтрованные за время фильтром dateRangeInput.Второй использует тот же набор данных и dateRangeInput, но суммирует итоги за период.Поэтому пользователь получает необработанные + обобщенные данные на странице.
update.df = eventReactive(input$Submit, {
data() %>% filter (between( as.Date(Date), input$dateRange[1], input$dateRange[2]))
})
Это мой код для первого кадра данных - я также использовал этот код перед попыткой описанного выше:
update.df = eventReactive(input$Submit, {
data() %>% filter(as.Date(Date) >= as.Date(input$dateRange[1]) & as.Date(Date) <= as.Date(input$dateRange[2]))
})
Всякий раз, когда даты попадают в календарный год, илиВ том же месяце я обнаружил, что фильтры работают и правая часть данных извлекается.Однако, когда данные охватывают два календарных года, я пропускаю месяцы данных.
Например:
Дата 1: сентябрь / 01/2018
Дата 2: апр / 30/2019
Когда я запускаю эти две даты,Я пропускаю даты с 1 января 2019 года по 30 апреля 2019 года.
Я считаю, что изначально проблема заключалась в том, что, когда я фильтровал, используя это:
as.Date(Date) <= as.Date(input$dateRange[2])
для второй части моегоПо логике фильтра, месяцы, которые «меньше» 30 апреля, наступают после этого в календарном году.Но на самом деле, с данными, которые я использую, месяцы с января по апрель происходят раньше.Вот почему я в конце концов переключился на использование «между», надеясь, что он определит все даты между двумя промежутками.Тем не менее, я все еще не достигаю правильных результатов.
Как правильно структурировать логику фильтра таким образом, чтобы при фильтрации кадра данных между сентябрем / 01/2018 и апрелем / 30/2019 все месяцы, которые происходят линейно, отображались в кадре данных как часть подмножества?