You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

gtsummary工具技术问询:如何横向展示tbl_regression的add_glance_table模型统计及在tbl_uvregression中添加该统计

嘿,这两个问题都是gtsummary用户常遇到的布局和统计量定制需求,我来给你一步步拆解解决方案:

解决gtsummary表格的两个布局与统计量添加问题

问题1:将模型统计量(如C指数)横向移动至表格右侧

默认add_glance_table()会把模型统计放在表格下方,要把它移到右侧和主回归表横向拼接,可以通过分步骤创建表格再横向合并的方式实现,具体代码如下:

library(gtsummary)
library(survival)

# 1. 创建主回归表格
main_tbl <- coxph(Surv(time, event) ~ score, data = dat) %>%
  tbl_regression(exponentiate = TRUE)

# 2. 创建模型统计表格(只保留需要的统计量,这里是C指数)
glance_tbl <- coxph(Surv(time, event) ~ score, data = dat) %>%
  add_glance_table(concordance) %>%
  # 转换为适合横向合并的格式:只保留统计量行,重置列名
  modify_table_body(~ .x %>% filter(row_type == "glance")) %>%
  modify_header(label ~ "模型统计量")

# 3. 横向合并两个表格,调整列顺序让C指数在最后
final_tbl <- tbl_merge(
  tbls = list(main_tbl, glance_tbl),
  tab_spanner = c("**回归结果**", "**模型拟合度**")
)

# 查看结果
final_tbl

如果需要添加多个模型统计量,只需要在add_glance_table()里指定多个参数(比如concordance, loglik),合并后它们会自然排列在右侧区域。


问题2:在tbl_uvregression中添加模型统计量(如C指数)

tbl_uvregression是批量单变量回归的工具,要给每个单变量模型添加对应的拟合统计量,不需要用add_glance_table(),而是用add_glance()函数并设置each = TRUE——这个参数是关键,它会给每个单变量模型单独计算统计量,而不是整体汇总。示例代码:

# 给每个单变量Cox模型添加C指数
uv_tbl <- tbl_uvregression(
  data = dat_score,
  method = survival::coxph,
  y = Surv(time, event),
  exponentiate = TRUE
) %>%
  # 添加每个模型的C指数,自定义列标签让表格更清晰
  add_glance(
    include = concordance,
    each = TRUE,
    label = list(concordance ~ "C指数")
  )

# 查看结果
uv_tbl

如果需要添加多个统计量,直接在include里追加即可(比如include = c(concordance, loglik)),它们会作为新的列依次添加在表格右侧。


内容的提问来源于stack exchange,提问作者B_slash_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 17:52:40