Sliderinput创建多个selectinput下拉菜单

时间:2017-09-08 17:41:20

标签: r shiny lapply

我想使用lapply函数来设置函数应该运行的次数以创建下拉菜单

lapply函数中的输入应来自用户选择的sliderinput

目前我错误地放置了lapply函数1:输入$ slider。我想在服务器和ui端使用lapply范围(1:来自sliderinput的用户定义的数字)。

如何在ui和服务器端使用滑块输入?

ui <- fluidPage(
 sliderInput("integer", "nooftabs:",min=1,max=10,value=2),
lapply(1:input$integer, function(i) {

  uiOutput(paste0('choose_tab1', i))
 })
)

server <- function(input, output) {
 lapply(1:input$integer, function(i) {
  output[[paste0('choose_tab1', i)]] <- renderUI({
  selectInput(paste0('tab1',    i),"tab:",list("Select"="","a"="file","b"="left"))
 })})
  }

shinyApp(ui = ui, server = server)

1 个答案:

答案 0 :(得分:2)

当事件依赖于输入时,它需要通过服务器:

require("shiny")

ui <- fluidPage(
  sliderInput("integer", "nooftabs:",min=1,max=10,value=2),
  uiOutput("select_inputs")
)

server <- function(input, output){

  observeEvent(input$integer, output$select_inputs <- renderUI({
    lapply(1:input$integer, function(i){
      selectInput(paste0('tab1',    i),
                  "tab:",list("Select"="","a"="file","b"="left"))
    })
  }))
}

shinyApp(ui = ui, server = server)