有没有办法在R DT pacakge中制作多级行分组表

问题描述 投票:0回答:2

我正在寻找在 R 中使用 DT 制作多级行分组表的方法

根据Datatables的文档(https://datatables.net/extensions/rowgroup/examples/initialization/multipleGroups.html),我尝试了多级行分组。但没成功

这是我的示例代码

datatable(render_df,
          class = 'cell-border stripe',
          container =  container, 
          rownames = F, 
          extensions = 'RowGroup', 
          options = list(searching=FALSE,
                         lengthChange = FALSE,
                         info = F, 
                         ordering=F,
                         paging=F,
                         rowGroup = list(dataSrc=c(1,0)),
                         columnDefs = list(list(visible=FALSE, targets=c(0, 1)),
                                           list(className = 'dt-body-left',
                                                targets = seq(2)),
                                           list(className = 'dt-body-right',
                                                targets = seq(3:18)),
                                           list(width = '10%',
                                                targets = 2),
                                           list(width = col.width,
                                                targets = c(3:col.cnt))
                                           ),
                         pageLength = 20))

这段代码的结果只是“无组”

有人尝试过这种多级行分组吗?

亲切的问候。

r shiny datatables shinydashboard dt
2个回答
0
投票

幸运的是我自己解决了这个问题:)。

对于想要使用此功能的人,我分享我的解决方案。

我比较了官方服务和 R DT 包之间的数据表扩展。我发现R DT的RowGroup版本相当旧,所以我下载了最新版本的Rowgroup扩展(https://datatables.net/download/index,仅检查了RowGroup)并更改了R/win-library/中的RowGroup扩展文件3.6/DT/htmlwidgets/lib/datatables(也许这会根据您的设置和操作系统而改变。)通过下载的文件。

我没有检查任何其他可能的错误或错误,但上面的代码可以正常工作。


0
投票

对于任何想知道这一点的人来说,实际上可以使用当前的 DT 版本(0.30)进行多行分组。不知道从什么时候开始实施的。

文档中的示例类似:

mtcars2 = mtcars[1:20, ]
DT::datatable(
    mtcars2[order(mtcars2$cyl), ],
    extensions = 'RowGroup',
    options = list(rowGroup = list(dataSrc = c(10,2))),
    selection = 'none'
)
© www.soinside.com 2019 - 2024. All rights reserved.