我想使用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)
答案 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)