2017-09-18 7 views
1

私はロードするデータフレームに基づいてオプションでselectInputを作成したいと思います。これらのオプションは、以下の例のようにグループ化する必要があります。私は完全に書き込むときにそれを行う方法を知っていますが、ドロップダウンリストを自動化して、データフレームを変更すると自動的に変更されるようにします。私は、グループのリスト、または各グループ内のインジケータのリストを変更するかもしれません。SelectInput(RShiny)でグループ化された選択肢のリストを動的に設定します

DD <- data.frame(group=c("Diagnosis","Diagnosis", "Treatment", "Treatment", "Outcome", "Outcome", "Outcome"), 
       Indicator=LETTERS[1:7]) 


> DD 
     group Indicator 
1 Diagnosis   A 
2 Diagnosis   B 
3 Treatment   C 
4 Treatment   D 
5 Outcome   E 
6 Outcome   F 
7 Outcome   G 

これは私が後だスタイルです:

runApp(
    list(
    ui = fluidPage(
     sidebarLayout(
     sidebarPanel(
      selectInput(inputId = "IND", 
         label = "Select indicator:", 
         choices = list("Diagnosis" = c("A", "B"), 
             "Treatment" = c("C", "D"), 
             "Outcome" = c("E", "F", "G"))) 
      , width = 3), 

     mainPanel(
     ) 
     ) 
    ) 


    , server = function(input, output, session){ 
    } 
) 
) 

答えて

2

1つのオプションは、 'グループ' 列

-output

library(shiny) 
DD <- data.frame(group=c("Diagnosis","Diagnosis", "Treatment", 
     "Treatment", "Outcome", "Outcome", "Outcome"), 
      Indicator=LETTERS[1:7]) 
runApp(
    list(
    ui = fluidPage(
     sidebarLayout(
     sidebarPanel(
      selectInput(inputId = "IND", 
         label = "Select indicator:", 
         choice = split(DD$Indicator, DD$group)) 
      , width = 3), 

     mainPanel(
     ) 
    ) 
    ) 


    , server = function(input, output, session){ 
    } 
) 
) 

によってsplit 'インジケータ' であることであろう

enter image description here

+1

すごく簡単な解決策!すばらしいです! – Luc

関連する問題