CommencerCommencez gratuitement

Ajouter une liste de sélection

Ajouter une entrée à une application Shiny se fait en deux étapes : vous ajoutez d’abord une fonction ___Input("x") à l’UI, puis vous accédez à sa valeur dans le serveur avec input$x.

Par exemple, si vous voulez que les utilisateurs choisissent un animal dans une liste, vous pouvez utiliser selectInput et faire référence à la valeur choisie avec input$animal :

selectInput(
  'animal', 
  'Select Animal', 
  selected = 'Cat', 
  choices = c('Dog', 'Cat')
)

Dans cet exercice, vous allez créer une application Shiny qui permet de visualiser les 10 prénoms les plus populaires selon le sexe, en ajoutant une entrée pour laisser l’utilisateur choisir le sexe.

Cet exercice fait partie du cours

<cours>Créer des applications web avec Shiny en R</cours>
Voir le cours

Instructions de l’exercice

  • Ajoutez une entrée de type sélection nommée "sex" pour permettre de choisir entre "M" et "F", avec "F" comme valeur par défaut.
  • Mettez à jour le code du serveur pour obtenir le top 10 des prénoms pour le sexe choisi et non plus uniquement pour "F".

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

ui <- fluidPage(
  titlePanel("What's in a Name?"),
  # CODE BELOW: Add select input named "sex" to choose between "M" and "F"

  # Add plot output to display top 10 most popular names
  plotOutput('plot_top_10_names')
)

server <- function(input, output, session){
  # Render plot of top 10 most popular names
  output$plot_top_10_names <- renderPlot({
    # Get top 10 names by sex and year
    top_10_names <- babynames %>% 
      # MODIFY CODE BELOW: Filter for the selected sex
      filter(sex == "F") %>% 
      filter(year == 1900) %>% 
      slice_max(prop, n = 10)
    # Plot top 10 names by sex and year
    ggplot(top_10_names, aes(x = name, y = prop)) +
      geom_col(fill = "#263e63")
  })
}

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