2016-12-06 6 views
0

shiny/shinydashboardの新機能。単一のチェックボックスグループの複数の「ラベル」

私は、ユーザーに1つまたは複数のオプションを選択させたいという一連のオプションがあります。 checkboxGroupInputはジョブを実行しますが、これはすべてのオプションに対して1つのラベルしか持てないことを意味します。私が望むのは、自分のチェックボックスのサブセットにラベルを付けることですが、選択されたオプションは、単一の変数としてサーバーに渡されます。

たとえば、オーケストラ楽器をタイプ(風、真鍮など)でグループ化して表示するとします。

library(shinydashboard) 

    dashboardPage(
     dashboardHeader(title = 'My Orchestra'), 

     dashboardSidebar(
     sidebarMenu() 
     ), 

     dashboardBody(
     fluidRow(
      box(
      checkboxGroupInput("my_orchestra", 
           label = "String", 
           choices = c("Violin" = "Violin", "Cello" = "Cello"), 
           inline = T 
           ), 

      checkboxGroupInput("my_orchestra", 
           label = "Woodwind", 
           choices = c("Bassoon" = "Bassoon", "Flute" = "Flute"), 
           inline = T 
           ), 

      checkboxGroupInput("my_orchestra", 
           label = "Brass", 
           choices = c("Trumpet" = "Trumpet", "Sax" = "Sax"), 
           inline = T 
           ) 
      )) 
     ) 
    ) 

どちらのオプションがチェックされ、私は選択肢がinput$my_orchestraとしてserver.Rにアクセスできるようにしたいと思います。上記のように、私はすべてのチェックボックスグループ 'my_orchestra'に名前を付けることでこれを実行しようとしましたが、これはうまくいきません。誰もこれを達成する方法を持っていますか?

+0

たものが一意であるとしてあなたは、あなたは彼らが道あなたがそれをしたいやりたいことができません ' divs'とユニークなIDを持っている必要があります –

答えて

1

あなたは多分reactiveValues以内にあなたの選択をラップして、私が行ったようv$my_orchestraとしてそれを使用することができます。

library(shiny) 
library(shinydashboard) 

ui <- dashboardPage(
    dashboardHeader(title = 'My Orchestra'), 

    dashboardSidebar(
    sidebarMenu() 
), 

    dashboardBody(
    fluidRow(
     box(
     checkboxGroupInput("my_orchestra1", 
          label = "String", 
          choices = c("Violin" = "Violin", "Cello" = "Cello"), 
          inline = T), 

     checkboxGroupInput("my_orchestra2", 
          label = "Woodwind", 
          choices = c("Bassoon" = "Bassoon", "Flute" = "Flute"), 
          inline = T), 

     checkboxGroupInput("my_orchestra3", 
          label = "Brass", 
          choices = c("Trumpet" = "Trumpet", "Sax" = "Sax"), 
          inline = T) 
    ), 
     textOutput("Selected") 
    ) 
) 
) 

server <- (function(input, output, session) { 

    v <- reactiveValues() 
    observe({ 
    v$my_orchestra <- c(input$my_orchestra1,input$my_orchestra2,input$my_orchestra3) 
    }) 
    output$Selected <- renderText({v$my_orchestra}) 
}) 

shinyApp(ui, server) 

enter image description here

+1

Thanks Pork Chop!トリックをしました。 – mbyvcm

関連する問題