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

如何让GTSummary的Overall列百分比计算包含Missing值?

解决GTSummary中Overall列百分比包含缺失值的问题

默认情况下,tbl_summary()的percent = "column"是基于非缺失观测计算百分比,所以你生成的表格里,Overall列的Red、Blue百分比是用非缺失的60个样本当分母,而Missing的30个没被算进分母。要让分母包含总样本(含缺失值),可以通过自定义统计量实现:

修改后的代码

# 定义数据
df <- data.frame(pat = c(1:90))
df$by <- ifelse(df$pat < 30, "A", "B")
df$lvl <- ifelse(df$pat < 30, NA, ifelse(df$pat < 60, "Red", "Blue"))

# 生成包含缺失值分母的百分比表格
df |> 
  select(by, lvl) |>
  tbl_summary(
    by = by,
    percent = "column",
    type = list(all_continuous() ~ "continuous2"),
    missing = "ifany",
    missing_text = "Missing",
    # 自定义分类变量统计量:用总样本数计算百分比
    statistic = list(all_categorical() ~ "{n} ({style_percent(n / N, digits = 1)}%)"),
    # 自定义缺失值统计量:同样基于总样本
    missing_stat = "{N_miss} ({style_percent(N_miss / N, digits = 1)}%)"
  ) |>
  add_overall(last = TRUE)

说明

  • 核心是通过statistic参数重写分类变量的统计逻辑:n是当前类别的样本数,N是分组的总样本量(包含缺失值),这样计算出的百分比就是以总样本为分母。
  • 修改后,Overall列里Red、Blue、Missing的百分比会分别是33.3%、33.3%、33.3%,总和为100%,符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 16:57:21