Lägg till ett urvalsinmatningsfält
Att lägga till en inmatning i en Shiny-app är en tvåstegsprocess: du lägger först till en ___Input("x")-funktion i UI:t och hämtar sedan dess värde i servern med input$x.
Om du till exempel vill låta användaren välja ett djur från en lista kan du använda selectInput och referera till det valda värdet som input$animal:
selectInput(
'animal',
'Select Animal',
selected = 'Cat',
choices = c('Dog', 'Cat')
)
I den här övningen bygger du en Shiny-app där användaren kan visualisera de 10 mest populära namnen efter kön – genom att lägga till ett inmatningsfält där kön kan väljas.
Den här övningen är en del av kursen
Bygg webbapplikationer med Shiny i R
Övningsinstruktioner
- Lägg till ett urvalsinmatningsfält med namnet "sex" där användaren kan välja mellan "M" och "F", med standardvärdet "F".
- Uppdatera serverkoden så att de 10 vanligaste namnen hämtas för det valda könet, i stället för enbart "F".
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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)