gtsummary输出至Word文档时如何实现单元格内容自动换行
问题解答
可以实现R端直接设置flextable输出到Word时自动换行,无需后续手动调整Word格式。
Word中单元格自动换行的前提是单元格被指定了固定宽度,因此你只需要在原有gtsummary代码的基础上,将生成的tbl对象转为flextable对象,再指定列宽、开启自动换行即可,修改后的示例代码如下:
library(flextable) library(gtsummary) library(dplyr) large_measurement <- rnorm(nrow(trial), mean = 1*10^12, sd = 1) trial %>% mutate(some_measurement = large_measurement) %>% tbl_summary(by = trt) %>% add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>% add_overall() %>% # 将gtsummary对象转为flextable对象 as_flex_table() %>% # 给各列设置固定宽度,单位为英寸,可根据Word页面边距自行调整 width(j = 1, width = 1.5) %>% width(j = 2:5, width = 1.2) %>% # 开启单元格文本自动换行 wrap_paragraphs()
补充说明
- 你可以根据实际需求调整
width()中的列索引(参数j)和对应宽度值,所有列宽度之和不要超过Word正文区域的总宽度即可保证表格不会超出页面 - 如果需要全局生效,可在Rmd文件的setup代码块中添加
set_flextable_defaults(wrap = TRUE),后续生成的所有flextable都会默认开启自动换行,只需要单独设置列宽即可。
内容的提问来源于stack exchange,提问作者PBB
相关产品推荐
相关产品推荐

