【发布时间】:2018-07-15 02:12:22
【问题描述】:
我已使用以下代码从我的数据创建复选框。我想为从列表中选择的每个复选框创建滑块输入。例如,如果复选框有 4 个变量,如“天空”、“地球”、 water","fire" 如果我选择天空,它应该为天空动态打开一个滑块输入,如果我选择水,它应该为水打开另一个滑块输入。我尝试了条件面板,但我的复选框中有超过 50 个变量,所以我无法为所有 50 个变量编写条件。有没有什么通用的方法可以在shiny中使用?
服务器
output$choosedigital=renderUI({
if(is.null(bk$variables))
return()
checkboxGroupInput("choosemedia", "Choose digital",
choices = bk$variables,
selected = bk$variables)
})
output$test <- renderUI({
LL <- list(rep(0,length(input$choosedigital)))
for(i in 0:(length(input$choosedigital))) {
LL[i] <- list(sliderInput(inputId = paste(input$choosedigital,i)
, label = paste(input$choosedigital,i),
min=0,max=25,value = 5))
}
return(LL)
})
【问题讨论】:
-
我认为你需要循环使用
lapply。请展示一个可重现的小例子 -
bk=mydigital output$choosemedia=renderUI({ if(is.null(bk$variables)) return() checkboxGroupInput("choosemedia", "Choose digital",choices = bk$variables, selected = bk$变量) }) ;滑块输入代码; output$test=renderUI({ if (is.null(input$choosemedia)) return() switch(input$choosemedia, sliderInput("dynamic", "Dynamic", min = 1, max = 20, value = 10)) })
-
我已经使用 for 循环更新了我的代码。但它仍然无法正常工作。有什么建议吗?
标签: r shiny shiny-server shinydashboard