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

gtsummary中inline_text无法输出含置信区间的百分比问题求助

问题解决方法

核心原因

gtsummary v2.0+ 弃用了单独的ci列,改用conf.low和conf.high存储置信区间上下限,但需要在inline_text中正确引用这些占位符,同时确保置信区间已被正确计算并关联到对应统计量。

修正后的代码步骤

  1. 调整表格构建逻辑:移除add_ci()中的自定义pattern(避免干扰inline_text的变量提取),让add_ci()默认计算并存储置信区间上下限:
tbl1 <- pof_dor_design20 |>
  tbl_svysummary(
    by = obtem_dor,
    include = c(sexo, cor_raca),
    label = list(sexo = "Sexo"),
    statistic = list(
      all_continuous() ~ "{mean}",
      all_categorical() ~ "{p}%"
    ),
    digits = list(
      all_continuous() ~ 2,
      all_categorical() ~ 1
    )
  ) |>
  add_stat_label() |>
  add_ci()  # 不指定pattern,默认存储conf.low和conf.high
  modify_header(all_stat_cols() ~ "<strong>{level}</strong>") |>
  add_p(
    test = list(
      all_continuous() ~ "svy.t.test",
      all_categorical() ~ "svy.wald.test"
    )
  )
  1. 生成目标格式文本:在inline_text的pattern参数中组合百分比与置信区间占位符,通过digits统一设置小数位数:
# 输出格式示例:"37.8% (37.0, 39.0)"
c_final <- inline_text(tbl1, 
                       variable = sexo, 
                       level = "1", 
                       column = "1",
                       pattern = "{p}% ({conf.low}, {conf.high})",
                       digits = list(p = 1, conf.low = 1, conf.high = 1))

关键说明

  • 必须执行add_ci():只有完成置信区间计算,conf.low和conf.high才会被纳入表格统计量元数据,inline_text才能正常引用。
  • 统一小数位数:通过digits参数同步设置百分比与置信区间的小数位数,保证输出格式一致性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 11:06:14