绘图不会随着 r 中闪亮的仪表板中日期的变化而变化



我在r中使用shinydashboard制作了一个面板,用户可以在其中选择要绘制的日期范围和变量。问题是,当我改变日期范围时,情节不会改变。尽管当我改变变量时它会改变。

示例数据(我从csv文件中读取(:

Date        Total_Orders   Delivered_orders   Cancelled_orders   NEW_USERS_COUNT 
2015-04-30     23             12               2                  21
2015-05-01     43             21               12                 32
2015-05-02     32             13               10                 30
2015-05-03     43             32               7                  14
2015-05-04     43             22               3                  21
2015-05-05     32             21               1                  22

我使用过的代码:

ui.R

library("shiny")
library("shinydashboard")
dashboardPage(
dashboardHeader(title = "Dashboard"),
dashboardSidebar(img(src="jpeg.jpg", length = 75, width = 230),
               dateRangeInput("daterange", "Select Date range:",
                              start = "2014-06-01",
                              end = "2015-06-30"),
               selectInput("var", "Choose a variable to display",
                           choices = c('Total_Orders' = 'Total_Orders', 
                                       'Delivered_orders' = 'Delivered_orders', 
                                       'Cancelled_orders' = 'Cancelled_orders', 
                                       'NEW_USERS_COUNT' = 'NEW_USERS_COUNT'),
                           selected = "Total_Orders")
               ),
dashboardBody(
fluidRow(
  box(title = "plot", status = "primary", solidHeader = TRUE, 
      collapsible = TRUE, plotOutput("chart1", height = 250, width = 500)) 
  )
  )
)

服务器.R

library("shiny")
library("data.table")
file <-     read.csv('filepath.csv', header = TRUE)
setnames(file, old = c('X_id'), new = c('date'))
file$date <- as.Date(strptime(file$date, "%Y-%m-%d" ))
shinyServer(function(input, output)
{output$chart1 <- renderPlot({
               start_date <- input$daterange[1]
               end_date <- input$daterange[2]
               subset(file, date >= start_date & date   <= start_date)
               point <- switch(input$var,
               'Total_Orders' = file$Total_Orders, 
               'Cancelled_orders' = file$Cancelled_orders,
               'Delivered_orders' = file$Delivered_ordes,
               'NEW_USERS_COUNT' = file$NEW_USERS_COUNT
               )
               plot(file$date, point, type = "b")
 }) 
})

有人能告诉我我做错了什么或遗漏了什么吗?

尝试将ui中的字符串强制为子集中的日期

subset(file, date >= as.Date(start_date) & date <= as.Date(start_date))

最新更新