Creación de funciones auxiliares
Hay muchos elementos que puedes añadir a un shinydashboard. Para permitir la interacción entre las entradas del usuario y los resultados del panel, debes definir estas interacciones dentro de las funciones render que se colocan en el servidor.
El código puede volverse farragoso muy rápido si hay muchas interacciones y muchos resultados. Una forma de evitar este problema es crear tus propias funciones auxiliares fuera del entorno de shinydashboard.
A continuación, vas a construir dos funciones auxiliares:
num_listings(): devuelve el número de anuncios en función de los datos filtrados dentro de un rango deprice.make_plots(): crea diagramas de caja o gráficos de violín según la selección del usuario, y en función de los datos filtrados dentro de un rango deprice.
listings está cargado, y se han importado sf, tidyverse y leaflet.
Este ejercicio forma parte del curso
Creación de paneles con shinydashboard
Instrucciones del ejercicio
- Filtra
listingspara que quede restringido entre los límites izquierdo y derecho del argumentorange, que es un marcador de posición para una entrada de shinyApp. - Configura las condiciones if-else correctas para que se tracen diagramas de caja cuando
choicecoincida con"Box plots", y gráficos de violín si es"Violin plots".
ejercicio interactivo práctico
Prueba este ejercicio completando este código de ejemplo.
num_listings <- function(range){
# Filter listings appropriately
filter(listings, price >= ___, price <= ___) %>% nrow()
}
make_plots <- function(range, choice){
filtered_listings <- filter(listings, price >= range[1], price <= range[2])
# Set the correct if-else conditions
if (choice == ___){
filtered_listings %>%
ggplot(aes(y = price, x = room_type)) + geom_boxplot() + theme_classic()
}
else if (___){
filtered_listings %>%
ggplot(aes(y = price, x = room_type)) + geom_violin() + theme_classic()
}}