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>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)