在Shiny Datatable中过滤多年日期

时间:2019-09-25 23:30:34

标签: r datatable shiny dplyr dt

在将我的数据表过滤成闪亮的时,我遇到了无法完全解决的问题。

我正在显示两个数据帧,首先是由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:2018年9月1日

日期2:2019年4月30日

运行这两个日期时,我错过了从2019年1月1日到2019年4月30日的日期。

我认为最初的问题是,我使用以下方法进行了过滤:

as.Date(Date) <= as.Date(input$dateRange[2])

对于我的过滤器逻辑的第二部分,小于4月30日的月份发生在日历年之后。但是实际上,根据我使用的数据,一月到四月之间的月份更早一些。这就是为什么我最终转而使用“之间”的原因,希望它能识别出两个跨度之间的所有日期。但是,我仍然没有达到正确的结果。

如何正确构造过滤器逻辑,以便当我在2018年9月1日至2019年4月30日之间过滤数据框时,所有线性出现的月份都作为子集的一部分出现在数据框中?

0 个答案:

没有答案
相关问题