2016-12-07 32 views
0

我想創建一組複選框,我可以使用renderUI和uiOutput分別選擇性地顯示/隱藏,並且即使複選框爲checkbox,也能夠更改使用updateCheckboxInput的值目前沒有顯示。R Shiny:在for循環中創建複選框

我試圖通過創建一個複選框列表,然後單獨顯示其中的一個,但只顯示最後一個。這裏是我的代碼:

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) 

回答

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) 
}