ConditionalPanelを介して一連のデフォルト値の1つを設定する方法

StackOverflow https://stackoverflow.com//questions/24046192

  •  21-12-2019
  •  | 
  •  

質問

私は、SelectInputに基づいて、デフォルト値として4つの異なる入力のうちの1つを取ります。予想される動作は、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))
.

役に立ちましたか?

解決

すべての入力は同じIDを持っています。numericInputを1つ持たないのはなぜ、選択した値が変更された場合はその値を更新しますか?

たとえば、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)
  })
})
.

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