R Shiny: How to add data tables to dynamically created tabs
To do what you want, you need to add dataTableOutput
to your tabPanel
as you dynamically generate them, and then you need to dynamically generate the corresponding renderDataTable
.
Do this in your server:
library(DT) # need datatables packageserver <- shinyServer(function(input, output, session) { output$mytabs <- renderUI({ nTabs = length(input$decision) # create tabPanel with datatable in it myTabs = lapply(seq_len(nTabs), function(i) { tabPanel(paste0("dataset_",i), DT::dataTableOutput(paste0("datatable_",i)) ) }) do.call(tabsetPanel, myTabs) }) # create datatables observe( lapply(seq_len(length(input$decision)), function(i) { output[[paste0("datatable_",i)]] <- DT::renderDataTable({ as.data.frame(get(input$decision[i])) }) }) ) })