質問

次のコードを使用して知っている

で通常のドロップダウンメニューを作成できます。
selectInput("Input1", "Choose you Input:", choices = c('a1'='1','b2'='2'))
.

次のドロップダウンを作成する

画像の説明を入力して

しかし、私は conditionalpanel を使っています。インラインドロップダウンメニューの種類を植える

のようなものです。

Enter Enter Image説明

次のコードを使用してこれらのメニューを生成しています。

conditionalPanel(condition="input.conditionedPanels==3",
                     div(style="display:inline-block",
                         tags$label('Menu1', `for` = 'Sample'), 
                         tags$select(id = 'Sample', class="input-small")),
                     div(style="display:inline-block",
                         tags$label('Menu2', `for` = 'Sample1'), 
                         tags$select(id = 'Sample1', class="input-small")))
.

私の問題は私はこれらのドロップダウンメニューにアイテムを追加することができません。私は価値観やオプションを試しましたが、それは何も変わりませんでした。

私は十分な情報を提供していることを願っています、より多くの情報が必要かどうか私に知らせてください。

役に立ちましたか?

解決

tagListにタグのリストを指定できます。必要なタグはoption属性を持つvalueタグです.mapply

library(shiny)

runApp(list(
  ui = bootstrapPage(
    numericInput('n', 'Enter 3 for condition', 3, 0, 10),
    conditionalPanel(condition="input.n==3",
                     div(style="display:inline-block",
                         tags$label('Menu1', `for` = 'Sample'), 
                         tags$select(id = 'Sample', class="input-small",
                                     tagList(mapply(tags$option, value = 1:10, 
                                                    paste0(letters[1:10], 1:10), 
                                                    SIMPLIFY=FALSE)))
                     ),
                     div(style="display:inline-block",
                         tags$label('Menu2', `for` = 'Sample1'), 
                         tags$select(id = 'Sample1', class="input-small",
                                     tagList(mapply(tags$option, value = 1:2, 
                                                    paste0(letters[1:2], 1:2), 
                                                    SIMPLIFY=FALSE)))
                     )
    )
    , textOutput("cond")
  ),
  server = function(input, output) {
    output$cond <- renderText({
      if(input$n == 3){
        paste0("Sample value selected =", input$Sample, " Sample1 value selected =",input$Sample1)
      }
    })
  }
))
.

もちろんselectInputの内側にdivを使用することができます。

library(shiny)

runApp(list(
  ui = bootstrapPage(
    numericInput('n', 'Enter 3 for condition', 3, 0, 10),
    conditionalPanel(condition="input.n==3",
                     div(style="display:inline-block",
                         selectInput("Sample", "Choose you Input:", choices = c('a1'='1','b2'='2'))
                     ),
                     div(style="display:inline-block",
                         tags$label('Menu2', `for` = 'Sample1'), 
                         tags$select(id = 'Sample1', class="input-small",
                                     tagList(mapply(tags$option, value = 1:2, 
                                                    paste0(letters[1:2], 1:2), 
                                                    SIMPLIFY=FALSE)))
                     )
    )
    , textOutput("cond")
  ),
  server = function(input, output) {
    output$cond <- renderText({
      if(input$n == 3){
        paste0("Sample value selected =", input$Sample, " Sample1 value selected =",input$Sample1)
      }
    })
  }
))
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top