gpt4 book ai didi

r - 合并 DT::datatable 中的列

转载 作者:行者123 更新时间:2023-12-04 09:55:14 27 4
gpt4 key购买 nike

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

this stackoverflow question 的已接受答案中有部分答案但是 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)

我想从这里开始

current table

对此

table with headers mergedtwo

最佳答案

这可能对你有用,使用 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)

enter image description here

关于r - 合并 DT::datatable 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58028528/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com