タグを使用してShiny-Rにドロップダウンメニューを作成します
-
22-12-2019 - |
質問
次のコードを使用して知っている
で通常のドロップダウンメニューを作成できます。selectInput("Input1", "Choose you Input:", choices = c('a1'='1','b2'='2'))
.
次のドロップダウンを作成する
しかし、私は conditionalpanel を使っています。インラインドロップダウンメニューの種類を植える
のようなものです。
次のコードを使用してこれらのメニューを生成しています。
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)
}
})
}
))
. 所属していません StackOverflow