When you summarise the data, you are dropping the Lugar
and Medicion
variables and adding precip
, that is why you get the error messages, you would need to do something like this:
library(shiny)
library(tidyverse)
server <- function(input, output, session) {
# Sample data
precip <- data.frame(
stringsAsFactors = FALSE,
Dia = c(17,18,19,20,21,
22,23,24,25,26,27,28,29,17,18,19,29,30,
31,1,2,3,4,5,6,7,8,17,18,19,20,21,22,
23,24,25,26,27,16,17,18,19,20,21,22,23,
24,25,26,5,6,7,8,9,10,11,12,13,14,15),
Medicion = c(50,17,13,12,3,6,
0.3,NA,13,1,4,20,3,NA,0,0,0,0,20,NA,
NA,NA,NA,NA,NA,NA,NA,NA,1,0,0,5,9,0,1,
0,0,0,0,2,17,58,32,0,9,0.5,1,25,1,0.5,
4,10,3,3,8,36,13,1,0.5,0.5),
Lugar = c("UNIAGRARIA",
"UNIAGRARIA","UNIAGRARIA","UNIAGRARIA","UNIAGRARIA",
"UNIAGRARIA","UNIAGRARIA","UNIAGRARIA","UNIAGRARIA",
"UNIAGRARIA","UNIAGRARIA","UNIAGRARIA",
"UNIAGRARIA","GRANADA NORTE","GRANADA NORTE",
"GRANADA NORTE","GRANADA NORTE","GRANADA NORTE",
"GRANADA NORTE","RIO FRIO","RIO FRIO","RIO FRIO","RIO FRIO",
"RIO FRIO","RIO FRIO","RIO FRIO","RIO FRIO",
"CHICU","CHICU","CHICU","CHICU","CHICU","CHICU",
"CHICU","CHICU","CHICU","CHICU","CHICU","RIO FRIO",
"RIO FRIO","RIO FRIO","RIO FRIO","RIO FRIO",
"RIO FRIO","RIO FRIO","RIO FRIO","RIO FRIO",
"RIO FRIO","RIO FRIO","GRANADA NORTE","GRANADA NORTE",
"GRANADA NORTE","GRANADA NORTE","GRANADA NORTE",
"GRANADA NORTE","GRANADA NORTE","GRANADA NORTE",
"GRANADA NORTE","GRANADA NORTE","GRANADA NORTE"),
Mes = as.factor(c("Abril","Abril","Abril","Abril","Abril",
"Abril","Abril","Abril","Abril",
"Abril","Abril","Abril","Abril","Marzo",
"Marzo","Marzo","Marzo","Marzo","Marzo",
"Marzo","Marzo","Marzo","Marzo",
"Marzo","Marzo","Marzo","Marzo","Marzo",
"Marzo","Marzo","Marzo","Marzo","Marzo",
"Marzo","Marzo","Marzo","Marzo",
"Marzo","Abril","Abril","Abril","Abril",
"Abril","Abril","Abril","Abril","Abril",
"Abril","Abril","Mayo","Mayo","Mayo",
"Mayo","Mayo","Mayo","Mayo","Mayo",
"Mayo","Mayo","Mayo"))
)
output$plot <- renderPlot({
req(input$sel_Lugar)
precip %>%
filter(Lugar == input$sel_Lugar) %>%
group_by(Lugar, Mes) %>%
summarise(precip = sum(Medicion, na.rm = TRUE)) %>%
ggplot(aes(x = Lugar, y = precip, fill = Mes)) +
geom_col() +
scale_fill_manual(values=c("#E23D2C","#BAA512","#512B9A","#21AB3F")) +
labs(title = "Distribución general de la precipitación",
caption= "Fuente: propia")+
ylab("Precipitación (mm)") +
theme_light()
})
}
ui <- basicPage(
h1("R Shiny Dynamically create Drop Down List"),
selectInput(inputId = "sel_Lugar",
label = "Choose Sales Rep",
choices = precip$Lugar,
"Names"),
plotOutput("plot")
)
shinyApp(ui = ui, server = server)