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

如何在lapply中结合group_by%>%sum实现数据分组求和?

实现方法

首先构造示例数据框:

df = data.frame(x = c(rep(1,5),rep(2,5)),
                y = 1:10,
                z = 11:20)

借助dplyr包,结合group_by分组与lapply遍历列计算总和,代码如下:

library(dplyr)
library(tidyr)

# 按x分组,对y、z列用lapply计算分组总和
summary_df <- df %>%
  group_by(x) %>%
  summarise(
    lapply(select(., y, z), sum),
    .groups = "drop"
  ) %>%
  unnest_wider(col = lapply(select(., y, z), sum))

# 输出结果
summary_df

运行后得到的结果:

x  y  z
1 1 15 65
2 2 40 90

如果不想额外依赖tidyr,也可以用dplyr的across函数配合lapply逻辑实现,写法更简洁:

summary_df <- df %>%
  group_by(x) %>%
  summarise(across(c(y, z), ~sum(.x)), .groups = "drop")

这个写法本质是用across遍历指定列,内部通过~sum(.x)调用求和,和lapply的遍历逻辑一致,同样能得到目标结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 21:48:19