R Shiny:在for循环中创建复选框

时间:2016-12-07 23:07:16

标签: r shiny

我想创建一组复选框,我可以使用renderUI和uiOutput有选择地单独显示/隐藏,并且即使当前没有显示复选框,也可以更改使用updateCheckboxInput的值。

我尝试通过创建一个复选框列表,然后单独显示其中一个,但只显示最后一个。这是我的代码:

server <- function(input, output) {
  v = list()
  for (i in 1:30){
    l = paste0("chk_", i)
    v[[i]] <- renderUI(actionButton(l, l))
  }

  output$chk <- v[[4]]
}

ui <- fluidPage(
  uiOutput("chk")
)

shinyApp(ui = ui, server = server)

1 个答案:

答案 0 :(得分:2)

看起来你的renderUI位置错误了。您想要创建一个包含30个复选框列表的renderUI对象,但您要创建一个renderUI对象列表。在服务器中试试这个:

server <- function(input, output) {
  v = list()
  for (i in 1:30){
    l = paste0("chk_", i)
    v[[i]] <- actionButton(l, l)
  }

  output$chk <- renderUI(v)
}