Voeg een select-input toe
Een input toevoegen aan een shiny-app gaat in twee stappen: je voegt eerst een ___Input("x")-functie toe aan de UI en leest de waarde vervolgens in de server met input$x.
Als je bijvoorbeeld gebruikers een dier uit een lijst wilt laten kiezen, kun je een selectInput gebruiken en naar de gekozen waarde verwijzen als input$animal:
selectInput(
'animal',
'Select Animal',
selected = 'Cat',
choices = c('Dog', 'Cat')
)
In deze oefening bouw je een Shiny-app waarmee gebruikers de 10 populairste namen per geslacht kunnen visualiseren door een input toe te voegen waarmee ze het geslacht kunnen kiezen.
Deze oefening maakt deel uit van de cursus
Webapplicaties bouwen met Shiny in R
Oefeninstructies
- Voeg een select-input met de naam "sex" toe zodat gebruikers kunnen kiezen tussen "M" en "F", met als standaardwaarde "F".
- Pas de servercode aan om de top 10 namen voor het gekozen geslacht op te halen in plaats van alleen voor "F".
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
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)