【问题标题】:Set default values of dynamic inputs in Shiny to be different将 Shiny 中动态输入的默认值设置为不同
【发布时间】:2014-04-09 00:36:59
【问题描述】:

我正在尝试运行具有动态输入数量的闪亮应用程序。我根据之前的堆栈溢出讨论实现了这一点,但现在我想设置它,以便每个输入的起始值都不同。

UI.R 语法的选择:

sidebarPanel(
selectInput("n", "Number of Test Scores Available", choices = c(1,2,3,4), selected = 1),
uiOutput("dyn_input")

server.R语法的选择:

output$dyn_input <- renderUI({
inputs <- lapply(1:input$n, function(i) {
input_name  <- paste("Test", i, sep="")
input_score <- paste("Score", i, sep="")
wellPanel(      
selectInput(
input=  input_name,
label= "Test Name", choices=c("Fall NWF"="FallNWF",
"Fall ORF"="FallORF",
"Spring NWF"="SpringNWF",
"Spring ORF"="SpringORF"
)),
sliderInput(input_score,"Score:",
min=0, max=250,value=0))
})
do.call(tagList, inputs)
}) 

当用户选择多个测试时,我希望 Test2 的默认值为 FallORF,Test3 为 SpringNWF,Test4 为 SpringORF,现在它们都默认为 FallNWF。谢谢你的帮助。如果您需要更多信息来帮助我,请随时询问。

【问题讨论】:

    标签: r shiny


    【解决方案1】:

    看起来不错,您就快到了,您只需在selectInput 调用中设置selected 属性。由于您已经拥有要为每个动态selectInput 选择的默认索引i,因此您可以像这样实现这一点(choices 移动到一个变量,choices[i] 用于selected 属性):

    output$dyn_input <- renderUI({
        inputs <- lapply(1:input$n, function(i) {
            input_name  <- paste("Test", i, sep="")
            input_score <- paste("Score", i, sep="")
            choices <- c("Fall NWF"="FallNWF",
                         "Fall ORF"="FallORF",
                         "Spring NWF"="SpringNWF",
                         "Spring ORF"="SpringORF")
            wellPanel(      
                selectInput(
                    input=  input_name,
                    label= "Test Name", choices=choices, selected = choices[i]),
                sliderInput(input_score,"Score:",
                            min=0, max=250,value=0))
        })
        do.call(tagList, inputs)
    }) 
    

    【讨论】:

      猜你喜欢
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      • 2020-06-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-14
      • 2021-04-07
      相关资源
      最近更新 更多