如何在gtsummary输出docx时为表格标题添加软换行?
解决gtsummary转flextable输出docx时标题换行问题
问题核心:
modify_caption()是针对HTML输出设计的,<br>换行在docx格式下不生效;直接替换成\n会被当作纯文本显示,无法触发换行。直接可行的解决方案:跳过
modify_caption()的换行设置,转成flextable后用其原生的set_caption()函数,配合\n实现标题换行:
library(gtsummary) library(flextable) # 生成基础汇总表格 tbl <- trial %>% select(trt, age, response) %>% tbl_summary(by = trt) # 转flextable后设置带换行的标题并导出docx tbl %>% as_flex_table() %>% set_caption(caption = "Table 1 Invertebrate Speciation\n(Australia)") %>% save_as_docx(path = "T001 IS - AUS.docx")
- 若要保留gtsummary的标题设置流程,可在转flextable后重新解析标题中的换行符:
tbl %>% modify_caption("Table 1 Invertebrate Speciation\n(Australia)") %>% as_flex_table() %>% # 重新设置标题,确保\n被识别为换行指令 set_caption(caption = .$caption$value) %>% save_as_docx(path = "T001 IS - AUS.docx")
原理:flextable的set_caption()会直接识别字符串中的\n作为换行标记,而gtsummary的modify_caption()在传递标题到flextable时,可能会对特殊字符做转义处理,因此直接在flextable层面设置标题更可靠。
内容的提问来源于stack exchange,提问作者Bill Knowlton
相关产品推荐
相关产品推荐

