Table 输出 - PDF 的分组列标题 table

Table output - grouping column headings for PDF table

我想知道在输出摘要时是否有任何方法可以有效地对列标题进行分组table。我意识到这是对我想要的东西的糟糕解释,所以这里有一个例子。

假设我有一个包含 5 列的摘要数据框:projectName、currMonthCost、currMonthRev、prevMonthCost、prevMonthRev。我希望列标题有 2 个级别,最终输出按 curr/prev 对列进行分组 - 例如:

               ||     Current    ||    Previous    ||  
  projectName  ||  Cost  |  Rev  ||  Cost  |  Rev  ||
_______________||________|_______||________|_______||
               ||        |       ||        |       ||
       x       ||    x   |   x   ||    x   |   x   ||  
       y       ||    y   |   y   ||    y   |   y   ||

对于 table 的拙劣尝试,我深表歉意,我是新来的。但希望你明白了。

有没有可以处理的软件包?我已经在使用 formattable 但在那里找不到任何明显的东西。如果没有现成的东西,我很高兴它是一个完整的烂摊子——它只是导出为 PDF 的汇总数字。我只是想避免在 PDF 处理之前必须导出到 excel 来合并单元格。

提前致谢。 詹姆斯

您需要 DT 库。它是一个非常强大的显示数据框的工具。在您的情况下,您可以使用 container 参数自定义 table headers:

library(DT)

df <- data.frame(projectName = c("x", "y"), currMonthCost = c("x", "y"), currMonthRev = c("x", "y"), prevMonthCost = c("x", "y"), prevMonthRev = c("x", "y"))

df
#  projectName currMonthCost currMonthRev prevMonthCost prevMonthRev
#1           x             x            x             x            x
#2           y             y            y             y            y

sketch = htmltools::withTags(table(
      class = 'display',
      thead(
          tr(
              th(rowspan = 2, 'projectName'),
              th(colspan = 2, 'Current'),
              th(colspan = 2, 'Previous')
          ),
          tr(
              lapply(rep(c('Cost', 'Rev'), 2), th)
          )
      )
  ))

datatable(df, container = sketch, rownames = F)