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

gtsummary包tbl_summary函数:百分比计算及双百分号问题

关于gtsummary包tbl_summary函数的问题解答

问题1:让分类变量百分比基于整个队列总数

要让sepal_c的百分比以整个数据集的总样本量为基准,需在statistic参数中使用gtsummary内置的总样本相关占位符:

  • {N}:代表整个数据集的总样本数
  • {p.tot}:代表基于总样本数计算的百分比

修改后的代码如下:

tb_iris <- iris %>% 
  select(Species, Sepal.Length) %>%
  mutate(sepal_c = ifelse(Sepal.Length > 5, 
                          "Big", ifelse(Sepal.Length < 5 & Sepal.Length >= 4, "Medium", "Short")),
         sepal_c = replace(sepal_c, sepal_c == "Medium", NA)) %>%
  tbl_summary(by = Species,
              missing = "no",
              statistic = sepal_c ~ c("{n}/{N} ({p.tot}%)"))

调整后输出的结果中,分母会是整个队列的总样本数,百分比也基于总样本计算,符合你期望的22/50=44%格式。

问题2:结果显示双百分号(已解决)

双百分号问题通常是因为在statistic参数中手动添加了%符号,而gtsummary的{p}或{p.tot}占位符本身已自带%标记。解决方法是移除手动添加的%,直接使用占位符即可:

  • 错误写法:"{n}/{N} {p}%" → 会显示xx%%
  • 正确写法:"{n}/{N} {p}" → 显示xx%

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 11:33:19