Adding Total/Subtotal to the bottom of a DataTable in Shiny Adding Total/Subtotal to the bottom of a DataTable in Shiny r r

Adding Total/Subtotal to the bottom of a DataTable in Shiny


Here is an example how to do the SubTotal of the given page. To get the total you can pre-compute it and then maybe paste it into the JS output?

library(shiny)library(DT)ui <- shinyUI(fluidPage(  h1('Testing TableTools'),  mainPanel(    dataTableOutput('display')  )      ))Names <- c("",names(mtcars))FooterNames <- c(rep("",4),Names[5:6],rep("",6))server <- function(input, output, session) {  sketch <- htmltools::withTags(table(    tableHeader(Names),tableFooter(FooterNames)  ))  opts <- list(    dom = 'Bfrtip', buttons = list('colvis','print',list(extend='collection',text='Download',buttons = list('copy','csv','excel','pdf'))),               footerCallback = JS(                 "function( tfoot, data, start, end, display ) {",                 "var api = this.api(), data;",                 "$( api.column(5).footer()).html('SubTotal:  '+",                 "api.column(5).data().reduce( function ( a, b ) {",                 "return a + b;",                 "} )",                 ");",                 "$( api.column(4).footer()).html('SubTotal: '+",                 "api.column(4).data().reduce( function ( a, b ) {",                 "return a + b;",                 "} )",                 ");","}")  )  output$display <- DT::renderDataTable(container = sketch,extensions = 'Buttons',options = opts,{    mtcars  })}shinyApp(ui = ui, server = server)

enter image description here