我有一个numericInput,基于selectInput,应该将四个不同输入中的一个作为默认值。预期的行为是您下拉selectInput并且条件面板填充适当的值。相反,似乎隐藏的面板仍然传递变量,行为似乎无法预测,有利于第一个面板。
是否有多个条件版本?
selectInput("type",label=strong("Model Type"),
choices = list(One="1",
Two="2",
Three="3",
Four="4")),
conditionalPanel(
condition = "input.type == '1'",
numericInput("numGroups",label=strong("Num Groups"),value=10))
,
conditionalPanel(
condition = "input.type == '2'",
numericInput("numGroups",label=strong("Num Groups"),value=20))
,
conditionalPanel(
condition = "input.type == '3'",
numericInput("numGroups",label=strong("Num Groups"),value=30))
,
conditionalPanel(
condition = "input.type == '4'",
numericInput("numGroups",label=strong("Num Groups"),value=40))
答案 0 :(得分:1)
您的所有输入都具有相同的ID。为什么没有numericInput
,如果所选值发生变化,则更新其值?
例如,在ui.R
:
shinyUI(basicPage(
selectInput("type",label=strong("Model Type"),
choices = list(One="1",
Two="2",
Three="3",
Four="4")),
numericInput("numGroups", label=strong("Num Groups"), 0)
))
然后在server.R
:
shinyServer(function(input, output, session) {
observe({
new.val <- switch(input$type, "1"=10, "2"=20, "3"=30, "4"=40)
updateNumericInput(session, "numGroups", value=new.val)
})
})