CommencerCommencer gratuitement

Permettre d’afficher tous les continents ("All")

Avant d’ajouter le sélecteur de continent, l’application Shiny affichait les données pour tous les continents. Maintenant que le sélecteur a été ajouté, les données peuvent être consultées par continent. Mais si l’utilisateur ne souhaite finalement pas filtrer par un continent précis et préfère tout voir ? Malheureusement, l’ajout du sélecteur a supprimé cette possibilité.

L’argument choices de la fonction selectInput() peut être modifié pour ajouter une valeur supplémentaire à la liste des continents, et lorsque cette valeur est choisie, le filtrage par continent peut être désactivé.

Cet exercice fait partie du cours

Études de cas : créer des applications web avec Shiny en R

Afficher le cours

Instructions

Ajoutez une option dans le select input pour sélectionner tous les continents ("All"). Lorsque cette option est choisie, ne faites aucun filtrage par continent. Plus précisément :

  • Ajoutez une valeur "All" à la liste d’options transmise au select input dans l’UI.
  • Dans le serveur, utilisez une instruction if pour vérifier si le continent est réglé sur "All". Si "All" est choisi, ne faites aucun filtrage sur les continents (ligne 20).

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

ui <- fluidPage(
  h1("Gapminder"),
  sliderInput(inputId = "life", label = "Life expectancy",
              min = 0, max = 120,
              value = c(30, 50)),
  # Add an "All" value to the continent list
  selectInput("continent", "Continent",
              choices = c(___, levels(gapminder$continent))),
  tableOutput("table")
)

server <- function(input, output) {
  output$table <- renderTable({
    data <- gapminder
    data <- subset(
      data,
      lifeExp >= input$life[1] & lifeExp <= input$life[2]
    )
    # Don't subset the data if "All" continent are chosen
    if (___) {
      data <- subset(
        data,
        continent == input$continent
      )
    }
    data
  })
}

shinyApp(ui, server)
Modifier et exécuter le code