如何用tbl_regression()将回归表95% CI列拆分为上下限列并保留表头
拆分gtsummary回归表的95%置信区间为上下限两列并保留共同表头
gtsummary确实没有专门的内置函数直接实现这个需求,但可以通过两个核心函数组合完成:modify_column_split()拆分CI列,modify_spanning_header()设置跨列的共同表头。以下是完整的实操步骤和代码示例:
步骤1:准备模型与初始回归表
先加载依赖包,用示例数据生成回归模型和基础的tbl_regression表:
library(gtsummary) library(tidyverse) # 以线性回归为例,可替换为你的目标模型 model <- lm(mpg ~ cyl + disp, data = mtcars) # 生成带95%置信区间的初始回归表 tbl_base <- tbl_regression(model, conf.int = TRUE)
步骤2:拆分95% CI列
使用modify_column_split()拆分默认的ci列,正则表达式需要匹配你表格中CI的格式(默认是(下限, 上限)):
tbl_split_ci <- tbl_base %>% modify_column_split( column = ci, # 匹配"(数字, 数字)"格式的CI,捕获上下限内容 pattern = "\\((.*), (.*)\\)", # 指定拆分后的列名 into = c("95% CI 下限", "95% CI 上限") )
如果你的CI格式是下限 - 上限这类其他格式,只需调整pattern参数,比如改成"(.*) - (.*)"即可。
步骤3:添加共同的跨列表头
用modify_spanning_header()把拆分后的两列绑定到同一个"95% CI"表头下:
tbl_final <- tbl_split_ci %>% modify_spanning_header( # 选中拆分后的两列,设置跨列标题 c(`95% CI 下限`, `95% CI 上限`) ~ "95% CI" )
最后打印tbl_final就能得到你想要的样式——95% CI作为上下限两列的共同表头,同时分开显示置信区间的两个数值。
内容的提问来源于stack exchange,提问作者Esraa Alfadul
相关产品推荐
相关产品推荐

