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

如何简化dplyr的summarise代码:实现单语句多变量汇总

更简洁的dplyr实现方法

当然有更高效简洁的写法!你完全不需要分两次分组汇总再合并——dplyr的summarize()函数支持在同一个调用里生成多个汇总统计量,直接一步到位得到你想要的结果。

优化后的代码

df_merged <- df %>% 
  group_by(x, y, z) %>% 
  summarize(
    mean_a = mean(a),  # 计算变量a的均值
    count = n(),       # 计算分组样本量
    .groups = "drop"   # 可选:取消分组,返回普通数据框(和你原结果一致)
  )

为什么这样更优?

  • 避免了重复的分组操作:原来的写法对同一个数据集做了两次group_by()和summarize(),现在只需要一次,运行效率更高
  • 省去了合并步骤:不用再手动处理merge()的键匹配问题,减少出错概率
  • 代码更紧凑易读:所有汇总逻辑都集中在一个管道里,维护起来更方便

小补充

.groups参数是dplyr 1.0.0及以上版本的特性,用来控制汇总后的分组状态:

  • "drop":完全取消分组,返回普通数据框(和你原代码merge后的结果结构一致)
  • "keep":保留原来的分组结构
  • "rowwise":转换为行式分组

如果你的dplyr版本较低,可以省略这个参数,或者手动加上ungroup()来取消分组:

df_merged <- df %>% 
  group_by(x, y, z) %>% 
  summarize(
    mean_a = mean(a),
    count = n()
  ) %>% 
  ungroup()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 19:52:45