如何在R中制作含分组均值(标准差)的连续变量表格
在R中生成均值(标准差)分组表格的解决方案
直接用dplyr+tidyr就能实现你要的格式,下面是具体步骤和示例代码(用内置数据集mtcars演示,你可以替换成自己的数据):
步骤1:加载必备包
library(dplyr) library(tidyr)
步骤2:处理数据并生成目标表格
# 示例数据:把mtcars里的am列转为分组标签(对应你的男/女分组) data <- mtcars %>% mutate(分组 = factor(am, levels = c(0,1), labels = c("男性", "女性"))) # 生成行是连续变量、列是分组的统计表格 result_table <- data %>% # 把所有连续变量转成长格式,方便分组计算 pivot_longer(cols = c(mpg, disp, hp, drat), # 替换成你的连续变量列名 names_to = "连续变量", values_to = "数值") %>% # 按变量和分组计算均值、标准差,合并成"均值(标准差)"格式 group_by(连续变量, 分组) %>% summarise(统计值 = sprintf("%.2f(%.2f)", mean(数值), sd(数值)), .groups = "drop") %>% # 转回宽格式,分组作为列 pivot_wider(names_from = 分组, values_from = 统计值) # 查看结果 print(result_table)
代码说明
pivot_longer:把原本分散在多列的连续变量整合到一列,让后续分组计算更便捷。sprintf:格式化输出字符串,%.2f表示保留两位小数,你可以根据需求改成%.1f(一位小数)或其他格式。pivot_wider:把分组从行转成列,最终得到你要的“连续变量为行,分组为列”的表格结构。
进阶:生成美观的报告用表格
如果需要把表格导出成Word/HTML格式的美观表格,可以用gt包:
library(gt) result_table %>% gt() %>% tab_header(title = "连续变量分组统计结果") %>% fmt_markdown(columns = everything())
内容的提问来源于stack exchange,提问作者Elena H
相关产品推荐
相关产品推荐

