2016-12-07 3 views
0

Я хотел бы создать набор флажков, которые я могу выборочно показать/скрыть индивидуально с помощью renderUI и uiOutput и иметь возможность изменять значение использования 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 в неположенном месте. Вы хотите сделать один объект renderUI, который включает в себя список из 30 флажков, но вместо этого вы создаете список объектов 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) 
} 
Смежные вопросы