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

如何在R语言中将分组汇总统计的for循环改写为自定义函数

R 自定义分组汇总统计函数实现

完整函数代码

# 注意原代码中的`purr`为笔误,正确依赖包名为purrr
library(gapminder)
library(purrr)

# 自定义分组汇总函数
my.function <- function(data, group_vars) {
  # 按传入的分组字段拆分数据集,对每个子数据集执行summary统计
  result <- data %>%
    split(.[group_vars]) %>%
    map(summary)
  return(result)
}

调用示例

完全匹配你需要的调用形式:

# 单字段分组统计
res_continent <- my.function(gapminder, c("continent"))
# 多字段分组统计
res_multi <- my.function(gapminder, c("country", "continent"))
# 查看结果
head(res_multi)

逻辑说明

  • 直接利用split()的多字段分组能力,无需额外for循环,支持传入任意数量的分组字段
  • 输出结构和你原有for循环实现的结果完全一致,为嵌套列表格式,每个子元素对应一个分组的统计结果
  • 如果需要返回数据框格式的汇总结果,可在map(summary)后补充bind_rows()逻辑即可快速合并所有分组结果

Base R 版本实现(无需加载第三方包)

my.function_base <- function(data, group_vars) {
  split_data <- split(data, data[group_vars])
  result <- lapply(split_data, summary)
  return(result)
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:54:02