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

如何在tbl_regression(gtsummary)中正确显示1-HR的置信区间顺序?

解决tbl_regression生成疫苗效力(VE)表格时置信区间顺序反转的问题

问题核心在于:当你用1 - HR计算VE时,HR的置信区间上下限会对应VE的上下限反转——HR的下限对应VE的上限,HR的上限对应VE的下限。直接用estimate_fun仅转换点估计,不会调整CI的顺序,导致显示的CI顺序错误。

正确解决方案

通过modify_table_body先调整估计值和CI的数值及顺序,再格式化输出:

library(gtsummary)

# 假设已拟合Cox模型m1_cox
tbl_ve <- tbl_regression(m1_cox, exponentiate = TRUE) %>%
  # 修改表格主体,转换为VE并调整CI顺序
  modify_table_body(
    ~ .x %>%
      mutate(
        estimate = 1 - estimate,  # 转换点估计为VE
        # 交换CI上下限并转换为VE的CI:HR上限→VE下限,HR下限→VE上限
        temp = conf.low,
        conf.low = 1 - conf.high,
        conf.high = 1 - temp
      ) %>%
      select(-temp)
  ) %>%
  # 格式化所有数值保留2位小数
  modify_fmt_fun(
    columns = c(estimate, conf.low, conf.high),
    fmt_fun = ~ round(.x, 2)
  ) %>%
  # 修改表头为疫苗效力
  modify_header(estimate = "**疫苗效力(VE)**")

步骤解释

  • tbl_regression(m1_cox, exponentiate = TRUE):先生成HR及其CI的基础表格(这一步是必要的,因为Cox模型默认输出系数,exponentiate参数将系数转换为HR)。
  • modify_table_body:
    • 将estimate字段转换为1 - HR,得到VE的点估计值。
    • 通过临时变量交换CI上下限,并转换为VE的CI:1 - HR上限作为VE的下限,1 - HR下限作为VE的上限,确保CI顺序正确。
  • modify_fmt_fun:统一格式化estimate、conf.low、conf.high字段的数值,保留2位小数。
  • modify_header:将表头修改为更直观的“疫苗效力(VE)”,提升表格可读性。

这样处理后,表格会显示正确顺序的VE及其置信区间(下限CI - 上限CI)。

内容的提问来源于stack exchange,提问作者Tamara Barusová

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 06:27:27