我在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))