You need to enable JavaScript to run this app. R中如何计算嵌套组均值、统计观测数并分州导出结果至Excel?
优惠活动
大模型
产品
解决方案
定价
更多

R中如何计算嵌套组均值、统计观测数并分州导出结果至Excel?

处理需求说明
  • 待处理数据集覆盖多州学生测试成绩:每个州下设10所学校,每所学校标记为公立(public)/私立(private)类型,同时记录item1、item2、item3三项测试的原始成绩
  • 统计维度为单所学校,最终输出的每份Excel需包含固定7个字段:
    • 所属州名称
    • 学校名称
    • 学校类型标识
    • 对应学校的总学生人数
    • item1成绩的校级均值
    • item2成绩的校级均值
    • item3成绩的校级均值
  • 完成统计计算后,按州维度拆分结果集,每个州单独导出为独立的Excel文件
模拟演示数据集构造

以下为可直接运行的模拟数据生成代码,用于复现演示场景:

library(randomNames)

# 构造基础观测字段
ID = 1:50
# 配置5个测试州,每个州匹配10条观测值
states = rep(c("TS", "NE", "AR", "MO", "WA"), times = c(10, 10, 10, 10, 10))
# 生成随机模拟的学校名称
schools = randomNames::randomNames(50)
# 生成学校类型标识
type = rep(c("private", "public"), times = c(20, 30))
# 生成三项测试的模拟成绩
item1 = rnorm(50, mean = 25, sd = 5)
item2 = rnorm(50, mean = 30, sd = 5)
item3 = rnorm(50, mean = 15, sd = 5)
# 合并为标准数据框
df = data.frame(ID, states, schools, type, item1, item2, item3)
学校维度统计计算

基于原始数据集完成分组聚合,计算要求的统计指标:

library(dplyr)

school_stat <- df %>%
  # 按州、学校名称、学校类型分组,保证同一学校的字段标识统一
  group_by(states, schools, type) %>%
  summarise(
    student_num = n(), # 计算每所学校的学生总数
    item1_mean = mean(item1, na.rm = TRUE),
    item2_mean = mean(item2, na.rm = TRUE),
    item3_mean = mean(item3, na.rm = TRUE),
    .groups = "drop" # 移除分组属性,简化后续导出逻辑
  )
按州拆分导出Excel

沿用已验证可正常运行的导出逻辑,替换为聚合后的统计结果:

# 按州拆分统计结果为列表结构
state_list <- split(school_stat, school_stat$states)
# 逐份写入对应命名的Excel文件
Map(
  openxlsx::write.xlsx,
  state_list,
  paste0(names(state_list), ".xlsx")
)

小提示:构造模拟数据时要保证同一所学校对应的所属州、学校类型字段完全统一,避免分组时出现拆分偏差。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 06:45:04