r - 如何在 DT::datatable 中设置多个选项列表和扩展名

标签 r datatables

我尝试申请 datatable options and extensions绘制 table .它的工作如果遵循引用但当我组合/应用多个扩展时 ColVis 不起作用。任何的想法?

df %>% 
  datatable(., caption="Table 3.4.1 : Partial Matching Teams' Name.", 
            extensions=list('ColReorder','ColVis', list(FixedColumns=list(leftColumns=2))), 
            options=list(autoWidth=TRUE,
                         dom='C<"clear">lfrtip',
                         colVis=list(exclude=c(0, 1),
                         activate='mouseover'),
            colReorder=list(realtime=TRUE),
            scrollX=TRUE,
            scrollCollapse=TRUE))

最佳答案

根据 DT manual 与某些扩展相关的选项需要放置在命名列表中。如果在 options 属性中指定选项,则必须分配 NULL

datatable(.,extensions=list("ColReorder" = NULL,
                            "ColVis" = NULL,
                            "FixedColumns"=list(leftColumns=2))

另一个错误是由于 dom 属性不足而产生的。有关更多信息 see this linkdom 中的每个字母都与表输出的指定元素相关联。大写与extension和小写与表元素(R相关联的字母 - 山口ř eorder,C - Ç olVis,T - 表Ť ools,t - 能,i - 表 NFO等)。如果缺少示例“R”,因此 Col R eorder 无法工作。使用添加的 TableTools 将所有内容放在正确的代码下方:
iris %>% 
  datatable(
    extensions = list("ColReorder" = NULL,
                      "ColVis" = NULL,
                      "TableTools" = NULL,
                      "FixedColumns" = list(leftColumns=2)), 
    options = list(autoWidth=TRUE,
                   oColReorder = list(realtime=TRUE),
                   oColVis = list(exclude=c(0, 1),   activate='mouseover'),
                   oTableTools = list(
                   sSwfPath = "//cdnjs.cloudflare.com/ajax/libs/datatables-tabletools/2.1.5/swf/copy_csv_xls.swf",
                   aButtons = list("copy","print",
                                   list(sExtends = "collection",
                                        sButtonText = "Save",
                                        aButtons = c("csv","xls")))),
               dom = 'CRTrilftp',
               scrollX = TRUE,
               scrollCollapse = TRUE))

升级!
由于 DT 已升级 (v0.1.56) 扩展,TableToolsColVis 不再可用。根据上面的新 tutorial 扩展可以通过 buttons 扩展。新版本的包更一致,添加扩展比以前更容易:
 DT:::datatable(
    iris,
    escape=F,
    filter = "top",
    rownames= F,
    extensions = list("ColReorder" = NULL,
                      "Buttons" = NULL,
                      "FixedColumns" = list(leftColumns=1)),
    options = list(
                dom = 'BRrltpi',
                autoWidth=TRUE,
                lengthMenu = list(c(10, 50, -1), c('10', '50', 'All')),
                ColReorder = TRUE,
                buttons =
                  list(
                    'copy',
                    'print',
                    list(
                      extend = 'collection',
                      buttons = c('csv', 'excel', 'pdf'),
                      text = 'Download'
                    ),
                    I('colvis')
                  )
              )
    )

关于r - 如何在 DT::datatable 中设置多个选项列表和扩展名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33432174/

相关文章:

R 在 for 循环中处理列名

javascript - JavaScript 中要忽略的单词列表?

javascript - 数据表 + 服务器端 : Child Rows destroyed

r - datatable 不会导出 R Shiny 中数据集中的所有行

javascript - 如何从 codeigniter View 将数组传递给 jquery 脚本

r - 在 rmarkdown 中增加地 block 之间的空间

打印时四舍五入 dplyr tbl_df 中的数值

r - shinyFiles文件夹选择: display the default folder

angularjs - Angular 数据表中的多重分组

r - 在多图中设置 mfg 可防止在边距上绘制