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

如何在gtsummary生成的统计表格中新增额外的中位数计算列

问题原因

你当前的代码同时对stage和grade两个变量分组,得到的是两个变量交叉组合后的分组中位数,无法得到单个分类变量各独立层级的统计结果。

解决方案

方案1:直接用gtsummary生成目标表格(匹配文献表格样式)

gtsummary的tbl_summary可直接定制统计规则,一步生成你需要的表格:

library(gtsummary)
library(tidyverse)

trial %>% 
  select(stage, grade, ttdeath) %>% 
  tbl_summary(
    statistic = list(
      all_categorical() ~ "{n}", # 分类变量行展示样本量N
      ttdeath ~ "{median}" # 汇总ttdeath的中位数
    ),
    type = list(stage ~ "categorical", grade ~ "categorical")
  ) %>% 
  # 自定义列名匹配需求
  modify_header(
    label ~ "分类层级",
    stat_0 ~ "N",
    estimate ~ "ttdeath中位数"
  )

方案2:手动计算各分类层级的统计量

如果需要把结果存为数据框,可以分别对每个分类变量分组计算后合并:

# 计算stage各层级统计量
stage_stats <- trial %>% 
  group_by(stage) %>% 
  summarise(
    group_name = "肿瘤分期",
    level = as.character(stage),
    N = n(),
    median_ttdeath = median(ttdeath, na.rm = TRUE)
  ) %>% 
  ungroup() %>% 
  select(group_name, level, N, median_ttdeath)

# 计算grade各层级统计量
grade_stats <- trial %>% 
  group_by(grade) %>% 
  summarise(
    group_name = "病理分级",
    level = as.character(grade),
    N = n(),
    median_ttdeath = median(ttdeath, na.rm = TRUE)
  ) %>% 
  ungroup() %>% 
  select(group_name, level, N, median_ttdeath)

# 合并得到最终统计量表
final_stats <- bind_rows(stage_stats, grade_stats)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:24:00