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

R语言如何生成按多变量分组的中位数、均值多维交叉表

有两种常用的实现方案,不需要手动拼接列,支持任意多分组和任意多数值变量批量计算:

方法1:tidyverse 实现(代码易读,适合中小数据集)

首先加载依赖包:

library(tidyverse)

完整计算代码如下,支持自动批量处理所有需要计算中位数的数值变量,自动拼接列名:

median_table <- df %>%
  # 把待计算的数值列转为长格式,自动适配所有duration开头的列,新增列无需修改代码
  pivot_longer(
    cols = starts_with("duration"),
    names_to = "indicator",
    values_to = "value"
  ) %>%
  # 合并三类分组的统计结果,新增分组维度只需要加对应分组逻辑即可
  bind_rows(
    # 按国家+年龄组统计
    group_by(., country, agegrp, indicator) %>%
      summarise(median = median(value, na.rm = TRUE), .groups = "drop") %>%
      rename(group = agegrp),
    # 按国家+性别统计
    group_by(., country, sex, indicator) %>%
      summarise(median = median(value, na.rm = TRUE), .groups = "drop") %>%
      rename(group = sex),
    # 按国家统计总人群
    group_by(., country, indicator) %>%
      summarise(median = median(value, na.rm = TRUE), .groups = "drop") %>%
      mutate(group = "total")
  ) %>%
  # 拼接成你需要的"国家_分组"格式列名
  unite("col_name", country, group, sep = "_") %>%
  # 转为宽表,行是指标,列是分组
  pivot_wider(names_from = col_name, values_from = median)

运行后得到的median_table就是你要求的列名格式的二维表格,可直接通过select调整列顺序。如果需要生成多级嵌套表头的可视化表格,可配合gt/flextable包对输出结果做样式渲染即可。如果需要计算均值、分位数等其他统计量,仅需把代码中的median替换为对应函数即可,整体逻辑无需调整。

方法2:data.table 实现(运行速度快,适合大样本数据集)

如果你的数据集规模较大,推荐用data.table方案,性能更高:

library(data.table)
setDT(df) # 转换为data.table格式

# 转换为长表
long_dt <- melt(
  df,
  measure.vars = patterns("^duration"),
  variable.name = "indicator"
)

# 批量计算中位数并转为宽表
median_table_dt <- dcast(
  rbind(
    # 国家+年龄组
    long_dt[, .(median = median(value, na.rm = TRUE)), by = .(country, agegrp, indicator)] %>% setnames("agegrp", "group"),
    # 国家+性别
    long_dt[, .(median = median(value, na.rm = TRUE)), by = .(country, sex, indicator)] %>% setnames("sex", "group"),
    # 国家总人群
    long_dt[, .(median = median(value, na.rm = TRUE)), by = .(country, indicator)] %>% .[, group := "total"]
  ),
  formula = indicator ~ country + group,
  value.var = "median"
)

内容的提问来源于stack exchange,提问作者D. Studer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:45:04