Я смог использовать tidyverse
для изменения значений во фрейме данных при изменении диапазона дат, но мои суммарные значения в полях значений не меняются.
df <- data.frame("Ship Date" = c("2020-01-01", "2020-01-02", "2020-01-03", "2020-01-04"),
"Revenue" = c(100, 200, 300, 400), "Load Volume" = c(10, 12, 14, 18))
ui <- fluidPage(
dateRangeInput(
inputId = "daterange",
label = "Select the date range",
start = min(df$`Ship Date`),
end = max(df$`Ship Date`),
min = min(df$`Ship Date`),
max = max(df$`Ship Date`),
format = "yyyy/mm/dd",
separator = "-"
),
textOutput("startdate"),
textOutput("enddate"),
textOutput("range"),
dashboardbody(
fluidRow(box(valueBoxOutput("totalrevenue"), title = "Revenue")
,box(valueBoxOutput("revperload"), title = "Revenue Per Load")
))
server <- function(input, output, session) ({
total.revenue <- dollar(sum(df$Revenue)
rev.perload <- dollar(sum(df$Revenue) / sum(df$`Load Volume`))
# date range
output$startdate <- renderText({
as.character(input$daterange[1])
})
output$enddate <- renderText({
as.character(input$daterange[2])
})
output$range <- renderText({
paste("Selected date range is ", input$daterange[1], "to", input$daterange[2])
})
output$totalrevenue <- renderValueBox({
total.revenue = subset(df, df$`Ship Date` >= input$daterange[1] & df$`Ship Date`<=input$daterange[2])
valueBox(
formatC(total.revenue, format = "d", big.mark = ',')
,paste(NULL)
)
})
output$revperload <- rendervalueBox({
rev.perload = subset(df, df$`Ship Date` >= input$daterange[1] & df$`Ship Date` <= input$daterange[2])
valueBox(
formatC(total.revenue, format = "d", big.mark = ',')
,paste(NULL)
)
})
})
shinyApp(ui, server)
Два значения поля не реагируют на изменение диапазона дат на панели инструментов.