【问题标题】:Shiny: Merge cells in DT::datatableShiny:合并 DT::datatable 中的单元格
【发布时间】:2017-01-21 21:16:50
【问题描述】:

我想在闪亮的 DT::datatable 的列中合并几行。有可能吗?

目前我可以输出如下内容:

但理想情况下,我想合并行并希望输出如下内容:

DT::datatable 中是否可以合并这样的行?

【问题讨论】:

标签: r shiny dt


【解决方案1】:

这可以在datatables-rowsgroup library 的帮助下实现。这是一个例子:

library(shiny)
library(DT)

dat <- iris[c(1,2,3,51,52,53,101,102,103), c(5,1,2,3,4)]

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

server <- function(input, output){
  output[["table"]] <- renderDT({
    dtable <- datatable(dat, rownames = FALSE, 
                        options = list(
                          rowsGroup = list(0) # merge cells of column 1
                        ))
    path <- "U:/Data/shiny/DT/www" # folder containing dataTables.rowsGroup.js
    dep <- htmltools::htmlDependency(
      "RowsGroup", "2.0.0", 
      path, script = "dataTables.rowsGroup.js")
    dtable$dependencies <- c(dtable$dependencies, list(dep))
    dtable
  })
}

shinyApp(ui, server)

【讨论】:

  • 很好的解决方案!也许在 DT 库中添加这个插件会是一个很棒的功能,或者可能为 DT 插件创建一个全新的 R 库?
  • 作为非 Javascript 用户,我很难听从您的建议。您能否说明在登陆您链接到的页面和包含您建议的代码之间我需要做什么?
  • 这真的很有帮助,不过我想知道是否可以调整 rowGroup 以便使用两列来合并重复的单元格?
【解决方案2】:

嘿,据我所知,在 DT 中不可能做到这一点,我有另一种方法来实现它。

 kable(c, align = "c") %>%
  kable_styling(bootstrap_options = "striped", full_width = F, position = "left",font_size = 12)%>%
  column_spec(1, bold = T) %>%
  collapse_rows(columns = 1, valign = "middle")

请尝试一下,它可以工作:)

【讨论】:

    猜你喜欢
    • 2020-01-21
    • 2017-02-22
    • 2019-05-08
    • 1970-01-01
    • 2018-05-30
    • 2019-01-20
    • 2020-06-24
    • 1970-01-01
    相关资源
    最近更新 更多