Estou escrevendo um aplicativo que permite ao usuário selecionar um intervalo de datas e o gráfico será alterado de acordo. No entanto, estou tendo problemas com minha função filter(). Se eu codificar as datas, ou seja, y >= '11/06/2024' e y <= '13/06/2024', o aplicativo funcionará bem. No entanto, quando tento tornar o filtro reativo com input$data_range, o gráfico aparece em branco. Tentei agrupar minha coluna do quadro de dados e a entrada em as.Date, mas meu gráfico ainda aparece em branco.
library(shiny)
library(ggplot2)
library(dplyr)
ui <- fluidPage(
dateRangeInput('date_range', 'Pick Range',
start = '2024-06-11',
end = '2024-06-13',
min = '2024-06-11',
max = '2024-06-15'),
actionButton('run', 'Run'),
plotOutput('plot')
)
server <- function(input,output){
data_input <- structure(list(length = 0:4, sec = c("00:00.0", "00:01.0", "00:02.0", "00:03.0", "00:04.0"), time = c(30L, 40L, 50L, 60L, 70L), colors = c(5L, 5L, 5L, 5L, 5L), y = c("6/11/2024", "6/12/2024", "6/13/2024", "6/14/2024", "6/15/2024")), row.names = c(NA, 5L), class = "data.frame")
data_filtered <- eventReactive(input$run,
filter(data_input, as.Date(y) >= as.Date(input$date_range[1]) & as.Date(y) <= as.Date(input$date_range[2]))
)
output$plot <- renderPlot(
ggplot(data_filtered(), aes(x = y, y = time))+geom_point()
)
}
shinyApp(ui = ui, server = server)