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

R语言gtsummary如何转置汇总表 实现统计量为列车型为行

问题说明

你使用gtsummary包生成的车型-速度统计汇总表现有效果如下:
当前生成的表格效果
现有表格以车型为列标题、速度的统计值为行内容,需要调整布局为:非缺失样本量N、中位数、取值范围等统计指标为列标题,各车型为行标题。

修改方案

原代码使用tbl_summary(by = car)的逻辑是按车型分组统计速度指标,天然会将分组变量(车型)放在列上、统计量放在行上,和目标布局相反。直接使用gtsummary专为「分类行变量+连续变量统计列」场景设计的tbl_continuous()函数即可实现需求,无需手动转置表格,且完整保留原有的p值计算、格式设置功能。

修改后的完整可运行代码如下:

library(dplyr)
library(gtsummary)
library(flextable)
library(officer)

dff <- structure(list(car = c("Honda", "Opel", "Toyota", "Ford", "Toyota", 
                              "Toyota", "Toyota", "Toyota", "Toyota", "Toyota", "Opel", "Opel", 
                              "Opel", "Opel", "Opel", "Opel", "Opel", "Opel", "Opel", "Opel", 
                              "Opel", "Opel", "Opel", "Opel", "Opel", "Opel", "Ford", "Ford", 
                              "Honda", "Honda", "Honda", "Honda", "Honda", "Honda", "Honda", 
                              "Honda", "Honda", "Honda", "Honda", "Honda", "Honda", "Honda", 
                              "Honda", "Honda", "Honda", "Honda", "Honda", "Honda", "Honda", 
                              "Honda", "Honda", "Honda", "Honda", "Honda", "Honda", "Honda", 
                              "Honda", "Honda", "Ford", "Ford", "Ford", "Ford", "Ford", "Ford", 
                              "Ford", "Ford", "Ford", "Ford", "Ford", "Ford"),
                      speed = c(0.0818884144530994, 
                               0.078202618461924, 0.0923996477945826, 0.0833895373090655, 0.0654271133558503, 
                               0.104902087082777, 0.0767497512256455, 0.0768176971270742, 0.0712864905867507, 
                               0.0554218586661056, 0.0850360296771161, 0.057954145633874, 0.0441854480859481, 
                               0.0881234075504796, 0.0639960050103843, 0.0620009991911811, 0.104363010616978, 
                               0.0794749032774448, 0.0639931924725228, 0.0347553634870904, 0.0235164440970578, 
                               0.000945735768549479, 0.0951332350399264, 0.0848849882638771, 
                               0.0770268456523483, 0.0860962939374158, 0.0779784304434212, 0.0700250314203401, 
                               0.0979442195442822, 0.0895676676419504, 0.145633658479367, 0.114931834231455, 
                               0.0907671090187226, 0.118083514719288, 0.0903243829523317, 0.0852324890285871, 
                               0.0196699224014573, 0.080910276397263, 0.0667256842832578, 0.100828213795925, 
                               0.0878058668694595, 0.0758022260504243, 0.106719838699154, 0.0920508745930191, 
                               0.0710548353544975, 0.0859097610562796, 0.0692502648434324, 0.0642848032824688, 
                               0.0934410581211051, 0.0901226640111047, 0.0880892316582102, 0.0526000795151807, 
                               0.0487590677497554, 0.0362328359734826, 0.130861058707153, 0.115286968138184, 
                               0.0973709227872183, 0.075845698962114, 0.0726245579593528, 0.0660583859152627, 
                               0.0432445861280246, 0.0326512563074741, 0.0833250468064319, 0.0712792343009829, 
                               0.0662704232419949, 0.0267930511166544, 0.0195822515826592, 0.0182287564631037, 
                               0.0565616222676817, 0.0462813673349305)),
                 class = "data.frame", row.names = c(NA, -70L))

# 调整布局后的建表代码
dff %>%
  tbl_continuous(
    variable = speed,
    include = car,
    label = list(car ~ "车型", speed ~ "速度"),
    digits = ~3,
    statistic = ~ c(
      "{N_nonmiss}",
      "{median} ({p25}, {p75})",
      "{min}, {max}"
    )
  ) %>%
  modify_header(
    stat_1 ~ "**非缺失样本量N**",
    stat_2 ~ "**中位数(25分位数, 75分位数)**",
    stat_3 ~ "**取值范围(最小值, 最大值)**",
    p.value ~ "**P值**"
  ) %>%
  modify_caption("不同车型速度统计汇总表") %>%
  bold_labels() %>%
  add_p(pvalue_fun = ~style_pvalue(.x, digits = 2)) %>%
  bold_p() %>%
  as_flex_table()
关键改动说明
  • 替换tbl_summary(by=car)为tbl_continuous():指定连续统计变量为speed,行分类变量为car,天然实现「车型在行、统计量在列」的布局,无需后期手动转置表格。
  • 统计量参数完全沿用原有设置,按顺序生成非缺失样本量N、中位数(四分位距)、取值范围三列,统计计算结果和原表完全一致。
  • 完整保留原代码的所有格式配置:标签加粗、p值保留2位小数、显著p值加粗、输出为flextable格式,可直接导出到Word使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:21:31