使用tableGrob合并表头单元格

时间:2015-10-19 12:41:21

标签: r merge gridextra

我目前正在使用以下方式创建表格图片:

SummaryTable <- data.frame(
  index,

  xa,
  xb,

  ya,
  yb,

  za,
  zb

)
names(SummaryTable) <- c("Index",
                         "Main X Sub A",
                         "Main X Sub B",
                         "Main Y Sub A",
                         "Main Y Sub B",
                         "Main Z Sub A",
                         "Main Z Sub B")

tt <- ttheme_default(colhead=list(fg_params = list(parse=TRUE)))
tbl <- tableGrob(SummaryTable, rows=NULL, theme=tt)

grid.arrange(tbl,as.table=TRUE) 

带输出: enter image description here

使用dput(SummaryTable):

structure(list(Index = 0:8, `Main X Sub A` = c(1, 0.69, 0.61, 
0.56, 0.5, 0.44, 0.4, 0.36, 0.33), `Main X Sub B` = c(0.86, 0.62, 
0.51, 0.42, 0.36, 0.31, 0.27, 0.24, 0.23), `Main Y Sub A` = c(1, 
0.8, 0.74, 0.68, 0.63, 0.56, 0.52, 0.47, 0.43), `Main Y Sub B` = c(0.86, 
0.77, 0.67, 0.59, 0.53, 0.47, 0.43, 0.39, 0.36), `Main Z Sub A` = c(0, 
0.17, 0.23, 0.27, 0.33, 0.37, 0.42, 0.46, 0.49), `Main Z Sub B` = c(0, 
0.24, 0.33, 0.42, 0.48, 0.55, 0.6, 0.64, 0.66)), .Names = c("Index", 
"Main X Sub A", "Main X Sub B", "Main Y Sub A", "Main Y Sub B", 
"Main Z Sub A", "Main Z Sub B"), row.names = c(NA, -9L), class = "data.frame")

但是,我想合并顶部标题来实现此输出(如png或pdf):

enter image description here

此表是在Excel中创建的。 X,Y和Z在合并的单元格内。

是否有人能够协助合并细胞的方法?

1 个答案:

答案 0 :(得分:7)

一种方法是使用combine代替 join described here),在表格中添加额外的标题行。

使用here中的提示,您可以为其他标题行创建tableGrob

然后,您可以更改l的{​​{1}}和r以更正定位。

gtable

enter image description here