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

如何在gtsummary::tbl_summary()中调整百分比并移除缺失值行?

使用gtsummary生成基于总样本百分比的汇总表(隐藏缺失行)

最简便的解决方法(无需转换缺失值)

直接在tbl_summary()中通过percent = "total"参数指定百分比基于总样本计算,同时用missing = "no"隐藏缺失值行:

library(gtsummary)
library(tidyverse)

# 示例数据
df <- tribble(
  ~grade, ~year,
  "A", "senior",
  NA_character_, " senior",
  "A", NA_character_,
  "B", NA_character_,
  NA_character_, NA_character_,
  "F", "freshmen"
)

# 生成目标汇总表
df %>%
  tbl_summary(
    missing = "no",          # 不显示缺失值行
    percent = "total"        # 百分比基于总样本量计算
  )

运行后,grade列的A会显示为2 (33.3%)(2/6),而非默认的2 (50%)(2/4),完全符合需求。

若已转换缺失值为显式水平,移除(Missing)行的方法

如果已经通过forcats::fct_explicit_na()将缺失值转为显式水平,可通过modify_table_body()过滤掉标记为(Missing)的行:

# 转换缺失值为显式水平
df_explicit_na <- df %>% 
  mutate(across(everything(), ~forcats::fct_explicit_na(.x)))

# 生成汇总表并移除(Missing)行
df_explicit_na %>%
  tbl_summary() %>%
  modify_table_body(
    ~ .x %>% filter(label != "(Missing)")
  )

但这种方法不如直接设置percent = "total"简便,更推荐第一种方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 15:15:38