Créer des fonctions utilitaires
De nombreux éléments peuvent être ajoutés à un shinydashboard. Pour permettre des interactions entre les entrées 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 lourd très vite s’il y a beaucoup d’interactions et de sorties. Une manière d’éviter ce problème est de créer vos propres fonctions utilitaires en dehors de l’environnement shinydashboard.
Dans ce qui suit, vous allez construire deux fonctions utilitaires :
num_listings(): renvoie le nombre d’annonces à partir des données filtrées dans une plage deprice.make_plots(): crée soit des boxplots soit des violin plots selon la sélection de l’utilisateur, et à partir des données filtrées dans une plage deprice.
listings est chargé, et sf, tidyverse et leaflet ont été importés.
Cet exercice fait partie du cours
<cours>Créer des tableaux de bord avec shinydashboard</cours>Instructions de l’exercice
- Filtrez
listingsde sorte qu’il soit restreint entre les bornes gauche et droite de l’argumentrange, qui est un espace réservé pour une entrée de shinyApp. - Définissez les bonnes conditions if-else afin que des boxplots soient tracés lorsque
choicecorrespond à"Box plots", et des violin plots lorsque 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()
}}