Мне интересно, что лучше всего подходит для обработки динамического количества данных. Вот пример игрушка:Создание динамического числа данных без переоценки
library(shiny)
library(DT)
ui <- shinyUI(fluidPage(
mainPanel(
sliderInput("number","Number of tables",1,10,1,1),
uiOutput("tables")
)))
server <- shinyServer(function(input, output, session) {
observe({
lapply(seq_len(input$number), function(i) {
output[[paste0("table",i)]] <- DT::renderDataTable(head(mtcars))
})
})
output$tables <- renderUI({
lapply(seq_len(input$number), function(i) {
DT::dataTableOutput(paste0("table",i))
})
})
})
# Run the application
shinyApp(ui = ui, server = server)
Этот подход является своего рода тупой инструмент, потому что вы должны засавить все DataTables, когда добавляется или удаляется один DataTable.
Есть ли лучший подход к динамическому генерации вывода, который не требует создания всего выходного сигнала в цикле и, следовательно, воссоздает весь вывод каждый раз, когда есть изменение?
Я думаю, что 'insertUI' и' removeUI' в Shiny 0.14 будут работать. –
Спасибо @warmoverflow. – Carl