数据表中的列摘要(来自包 DT)

Posted

技术标签:

【中文标题】数据表中的列摘要(来自包 DT)【英文标题】:Summary of column in datatable (from package DT) 【发布时间】:2016-12-31 21:02:31 【问题描述】:

有没有可能像这个例子一样在 R 版本的数据表(由 DT 包提供)中添加摘要?

https://datatables.net/examples/advanced_init/footer_callback.html

【问题讨论】:

【参考方案1】:

首先你必须为你的数据表添加一个页脚(使用 container 参数),然后插入你在 footerCallback 函数中链接的 javascript 代码(在 options 数据表的参数)。

这是一个使用 USArrests 数据集的示例:

sketch <- htmltools::withTags(table(
  tableHeader(c('State', names(USArrests))),
  tableFooter(rep('', 5))
))

#here is a copy of the javascript you had link
opts <- list( 
    footerCallback = JS("function( row, data, start, end, display ) ",
        "var api = this.api(), data;",
        "var intVal = function ( i ) ",
          "return typeof i === 'string' ?",
            "i.replace(/[\\$,]/g, '')*1 :typeof i === 'number' ?",
            "i : 0;;",
        "total = api",
          ".column( 3 )",
          ".data()",
          ".reduce( function (a, b) ",
            " return intVal(a) + intVal(b);",
        " , 0 );",
        "$( api.column( 3 ).footer() ).html('('+ total +' total)');",
        ""))

datatable(USArrests, container = sketch, options = opts)

【讨论】:

以上是关于数据表中的列摘要(来自包 DT)的主要内容,如果未能解决你的问题,请参考以下文章

Postgres - 将行转换为两个表中的列

由于用户选择,当列改变位置时,在Shiny中取消选择DT :: formatRound中的列

使用 DT 包隐藏响应式数据表中的某些列

涉及因素的数据表分配

SSIS包写入CRM 2011数据类型错误

如何使用 R Shiny 中的 DT 包格式化数据表输入?