合并 DT::datatable 中的列

Nib*_*ced 5 r dt

我需要在闪亮的 DT::datatable 中跨列合并单元格。最好的方法似乎是利用 Javascript DataTables 扩展RowGroup。但是我不知道从查看上面链接中的页面到在我闪亮的应用程序中合并单元格要采取哪些步骤(我在闪亮的应用程序中工作是有原因的;)。

这个 stackoverflow 问题的公认答案中有部分答案,但 1) 是关于合并(即垂直而不是水平),以及 2)R 和 Javascript 交互背后的机制似乎被假定为先验知识,离开我的问题是“我需要从哪里下载哪些文件”和“我是否需要调整其中的 Javascript 代码?”

这是我的应用程序的一个简化示例:

library(shiny)
library(DT)

tbl <- data.frame("A"=c("foo", 1L, "question"),
                  "B"=c("bar", 2L, "answer"))

ui <- fluidPage(
  dataTableOutput("table")
)

server <- function(input, output) {

  output$table <- renderDT({
    datatable(tbl, rownames=F, class="",
              options = list(autoWidth=T,
                             columnDefs = list(list(className="dt-center", targets="_all"),
                                               list(width="40px", target="_all"))))
  })
}

shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)

我想从这里开始

当前表

对此

带有标题的表合并了两个

Mat*_*att 5

这可能对你有用,使用 htmltools

library(shiny)
library(DT)
library(htmltools)

tbl <- data.frame("A" = c( 1L, "question"),
                  "B" = c( 2L, "answer"))

container_dt= withTags(table(
  class = 'display',
  thead(
    tr(
      th(class = 'dt-center',colspan = 2, 'AB')),
      tr(
      lapply((c('foo', 'bar')), th)))))


ui <- fluidPage(
  dataTableOutput("table")
)

server <- function(input, output) {

    output$table <- renderDT({
        datatable(tbl, container = container_dt, rownames = F, class = "",
              options = list(autoWidth = T,
                             columnDefs = list(list(className = "dt-center", targets = "_all"),
                                               list(width = "40px", target = "_all"))))
    })
}

shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明