始める無料で始める

select 入力を追加する

shiny アプリに入力を追加するには2段階の手順があります。まず UI に ___Input("x") 関数を追加し、その値をサーバーで input$x として参照します。

たとえば、ユーザーにリストから動物を選んでもらいたい場合は selectInput を使い、選ばれた値は input$animal として参照できます。

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

この演習では、性別を選べる入力を追加して、ユーザーが性別ごとの人気トップ10の名前を可視化できる Shiny アプリを作成します。

この演習はコースの一部です

Rで作るShiny Webアプリケーション

コースを見る

演習の手順

  • ユーザーが "M" と "F" から選べるよう、名前を "sex" とする select 入力を追加し、既定値は "F" にしてください。
  • サーバーコードを更新し、"F" のみではなく、選択された性別のトップ10の名前を取得するようにしてください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

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)
コードを編集して実行