Kom igångKom igång gratis

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

Visa kurs

Ö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)
Redigera och kör kod