在将我的数据表过滤成闪亮的时,我遇到了无法完全解决的问题。
我正在显示两个数据帧,首先是由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日之间过滤数据框时,所有线性出现的月份都作为子集的一部分出现在数据框中?