Creare alcune funzioni di supporto
In un shinydashboard si possono aggiungere molti elementi. Per permettere l’interazione tra gli input dell’utente e gli output del dashboard, devi definire queste interazioni all’interno delle funzioni di render nel server.
Se ci sono molte interazioni e molti output, il codice può diventare presto macchinoso. Un modo per aggirare il problema è creare funzioni di supporto personalizzate al di fuori dell’ambiente di shinydashboard.
Di seguito costruirai due funzioni di supporto:
num_listings(): restituisce il numero di annunci in base ai dati filtrati all’interno di un intervallo diprice.make_plots(): crea boxplot o violin plot in base alla selezione dell’utente e ai dati filtrati all’interno di un intervallo diprice.
listings è già caricato e sf, tidyverse e leaflet sono stati importati.
Questo esercizio fa parte del corso
Creare dashboard con shinydashboard
Istruzioni dell'esercizio
- Filtra
listingsin modo che sia limitato tra i limiti sinistro e destro dell’argomentorange, che è un segnaposto per un input di shinyApp. - Imposta le corrette condizioni if-else così che vengano disegnati i boxplot quando
choiceè uguale a"Box plots", e i violin plot quando è"Violin plots".
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
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()
}}