如何用gtsummary::tbl_regression汇总survival::cch病例队列模型?
解决cch模型的gtsummary汇总问题
问题原因
gtsummary默认的模型整理逻辑未完全适配survival::cch的输出结构,虽然broom::tidy()能单独成功整理模型,但tbl_regression()默认调用的备用整理函数(tidy_parameters())无法正确识别cch模型的结果字段,从而触发报错。
解决方案
通过手动指定tidy_fun参数强制使用broom::tidy()整理模型,再按需调整输出格式:
1. 生成基础汇总表格
直接指定tidy_fun = broom::tidy,同时关闭exponentiate参数(cch的tidy方法不支持该参数):
# 生成原始系数的汇总表格 tbl_cc <- tbl_regression( fit.ccP, tidy_fun = broom::tidy, # 强制使用能成功运行的broom::tidy exponentiate = FALSE # 先不指数化,后续手动处理 )
2. 转换为风险比(HR)输出(可选)
如果需要展示指数化后的系数(即风险比),通过modify_table_body手动计算并调整格式:
# 转换为HR及95%CI的格式 tbl_cc_hr <- tbl_cc %>% modify_table_body( mutate, estimate = exp(estimate), # 指数化系数得到HR conf.low = exp(conf.low), # 指数化置信区间下限 conf.high = exp(conf.high), # 指数化置信区间上限 label = ifelse(label == "Beta", "HR", label) # 替换表头标签 ) %>% modify_header( estimate = "**HR**", conf.low = "**95% CI**", conf.high = "" ) %>% modify_fmt_fun( list( estimate = style_number(digits = 2), conf.low = style_number(digits = 2), conf.high = style_number(digits = 2) ) )
3. 查看最终表格
tbl_cc_hr
额外说明
- 若出现「模型数据找不到」的警告,确保
ccoh.data始终存在于当前工作环境中,避免在子环境中运行模型或中途清除数据。 - 上述方法既保留了
gtsummary的表格美化能力,又适配了cch模型的特殊输出结构。
内容的提问来源于stack exchange,提问作者Jessica
相关产品推荐
相关产品推荐

