我正在尝试在数据表的页脚中添加一个colsum
我用https://github.com/rstudio/DT/issues/39在1列上做到了
sketch <- htmltools::withTags(table(
tableHeader(cars),
tableFooter(cars)
))
datatable(cars,container = sketch, rownames = F,
options = list(
footerCallback = JS(
"function( tfoot, data, start, end, display ) {",
"var api = this.api();",
"$( api.column(1).footer() ).html(",
"api.column(1 ).data().reduce( function ( a, b ) {",
"return a + b;",
"} )", # remove ; here
");",
"}")
)
)
Run Code Online (Sandbox Code Playgroud)
我试图做到这一点的
-所有列
-所有NUM列(或所有除焦炭ID更容易)
编辑:解决方案:)
dt_test <- structure(list(`pathologie principale` = c("Effet toxique des métaux",
"Autres résultats anormaux des examens chimiques du sang", "Néphrite tubulo-interstitielle chronique",
"Atteintes tubulo-interstitielles et tubulaires dues à des médicaments et des métaux lourds",
"Autres maladies pulmonaires obstructives chroniques", "Autres résultats anormaux de l'examen des urines"
), Fort = c(12L, 4L, 3L, 2L, 2L, 2L), Moyen = c(2L, 0L, 0L, 0L, 1L, 1L), Faible = c(4L, 0L, 0L, 0L, 4L, 0L)),
.Names = c("pathologie principale", "Fort", "Moyen", "Faible"), class = c("data.table", "data.frame"
), row.names = c(NA, -6L))
sketch <- htmltools::withTags(table(
tableHeader(dt_test),
tableFooter(sapply(dt_test, function(x) ifelse( (is.numeric(x)) ,sum(x) ,"total" ))
)))
datatable(dt_test,
container = sketch,
rownames = F
)
Run Code Online (Sandbox Code Playgroud)
不需要footerCallback:
sketch <- htmltools::withTags(table(
tableHeader(dt_test),
tableFooter(sapply(dt_test, function(x) if(is.numeric(x)) sum(x)))
))
datatable(dt_test,
container = sketch,
rownames = F
)
Run Code Online (Sandbox Code Playgroud)