CommencerCommencez gratuitement

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 :

  1. num_listings() : renvoie le nombre d’annonces à partir des données filtrées dans une plage de price.
  2. 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 de price.

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>
Voir le cours

Instructions de l’exercice

  • Filtrez listings de sorte qu’il soit restreint entre les bornes gauche et droite de l’argument range, 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 choice correspond à "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()
}}
Modifier et exécuter le code