Créer quelques fonctions utilitaires
De nombreux éléments peuvent être ajoutés à un shinydashboard. Pour permettre des interactions entre les entrées de l'utilisateur et les sorties du tableau de bord, vous devez définir ces interactions dans les fonctions render placées dans le serveur.
Le code peut devenir encombrant très vite s'il y a beaucoup d'interactions et de sorties. Une façon de contourner ce problème est de créer vos propres fonctions utilitaires à l'extérieur de l'environnement shinydashboard.
Dans ce qui suit, vous allez construire deux fonctions utilitaires :
num_listings(): renvoie le nombre d'annonces selon les données filtrées dans une plage deprice.make_plots(): crée soit des diagrammes en boîte (boxplots) soit des diagrammes en violon selon la sélection de l'utilisateur, et selon les données filtrées dans une plage deprice.
listings est chargé, et sf, tidyverse et leaflet ont été importés.
Cette activité fait partie du cours
Créer des tableaux de bord avec shinydashboard
Instructions de l’exercice
- Filtrez
listingsde façon à le restreindre entre les bornes gauche et droite de l'argumentrange, qui sert d'alias à une entrée de shinyApp. - Définissez les bonnes conditions if-else afin de tracer des diagrammes en boîte lorsque
choicecorrespond à"Box plots", et des diagrammes en violon si c'est"Violin plots".
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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()
}}