如何使用gtsave()将两个gt/gtsummary对象保存到同一个PDF文件?
将两张gt表格保存到同一PDF的同一页面
可以通过将多个gt表格转换为图形对象后组合,再导出为PDF的方式实现,以下是两种实用方案:
方案一:使用gridExtra包组合表格
先将gt表格转为grob对象,再垂直排列后保存:
library(gt) library(gridExtra) # 构造对应你提供的abc和xyz表格 tbl_abc <- gt(data.frame( Column_A = c("Cell 1", "Cell 3"), Column_B = c("Cell 2", "Cell 4") )) %>% tab_header(title = "表格1. abc") tbl_xyz <- gt(data.frame( Column_A = c("Cell 1", "Cell 3"), Column_B = c("Cell 2", "Cell 4") )) %>% tab_header(title = "表格2. xyz") # 转换为grob对象并组合 grob_abc <- as_grob(tbl_abc) grob_xyz <- as_grob(tbl_xyz) combined_table <- grid.arrange(grob_abc, grob_xyz, ncol = 1) # 保存到同一PDF页面 ggsave("combined_tables.pdf", combined_table, width = 8, height = 10)
方案二:使用patchwork包简化操作
patchwork支持直接拼接gt对象,代码更简洁:
library(gt) library(patchwork) # 构造对应你提供的abc和xyz表格 tbl_abc <- gt(data.frame( Column_A = c("Cell 1", "Cell 3"), Column_B = c("Cell 2", "Cell 4") )) %>% tab_header(title = "表格1. abc") tbl_xyz <- gt(data.frame( Column_A = c("Cell 1", "Cell 3"), Column_B = c("Cell 2", "Cell 4") )) %>% tab_header(title = "表格2. xyz") # 垂直拼接并保存 (tbl_abc / tbl_xyz) %>% ggsave(filename = "combined_tables.pdf", width = 8, height = 10)
注意事项
- 确保已安装所需依赖包:
install.packages(c("gt", "gridExtra", "patchwork", "ggplot2")) - 根据表格内容调整
width和height参数,避免内容被截断或页面留白过多
内容的提问来源于stack exchange,提问作者Ting Zhang
相关产品推荐
相关产品推荐

