【发布时间】:2018-10-07 13:01:26
【问题描述】:
问题:
我在使用 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")
谁能引导我朝着正确的方向前进?您可以使用 iris 数据集重新创建这个确切的问题。我了解输出对于可重现的示例很重要,但我不能分享我公司的数据。
编辑:
出于计数目的,我的 data.frame 将日期变量分为 2 列:月、年。 Month 是一个没有前导 0 的字符 - 这就是为什么我需要使用上面的 gsub 函数。
【问题讨论】: