使用gt函数设置gtsummary合并表格样式时遇错求助
问题根源
tbl_merge()仅支持合并gtsummary类对象,但你用as_gt()把t1转换成了gt包的表格对象,它不再属于gtsummary类型,因此触发类型不匹配错误。另外你在tab_spanner参数里误用as_gt()也是错误的,这个参数只需要传入字符串向量。
两种可行解决办法
办法一:先合并gtsummary对象,再统一转为gt格式并设置样式
先保留所有待合并表格的gtsummary类型,完成合并后再转成gt表格并添加格式选项:
library(survival) library(tidyverse) library(gt) library(gtsummary) # 保留gtsummary对象,不提前转gt t1 <- glm(response ~ trt + grade + age, trial, family = binomial) %>% tbl_regression(exponentiate = TRUE) t2 <- coxph(Surv(ttdeath, death) ~ trt + grade + age, trial) %>% tbl_regression(exponentiate = TRUE) # 先合并gtsummary对象,再转gt设置格式 tbl_merge_ex1 <- tbl_merge( tbls = list(t1, t2), tab_spanner = c("**Tumor Response**", "**Time to Death**") ) %>% as_gt() %>% gt::tab_options(table.font.names = "Times New Roman") tbl_merge_ex1
办法二:先对单个gtsummary表格做专属自定义,再合并转gt
如果需要对单个表格做gtsummary层面的修改(比如调整列标题、添加脚注),先完成这些操作,再合并后转gt设置格式:
# 对t1做gtsummary层面的自定义(示例:修改列标题) t1_custom <- glm(response ~ trt + grade + age, trial, family = binomial) %>% tbl_regression(exponentiate = TRUE) %>% modify_header(label ~ "**Covariate**") t2_custom <- coxph(Surv(ttdeath, death) ~ trt + grade + age, trial) %>% tbl_regression(exponentiate = TRUE) %>% modify_header(label ~ "**Covariate**") # 合并后转gt设置格式 tbl_merge_ex2 <- tbl_merge( tbls = list(t1_custom, t2_custom), tab_spanner = c("**Tumor Response**", "**Time to Death**") ) %>% as_gt() %>% gt::tab_options(table.font.names = "Times New Roman") tbl_merge_ex2
内容的提问来源于stack exchange,提问作者themichjam
相关产品推荐
相关产品推荐

