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

R语言实现数据框按组求和新增列且不生成新grouped_df

实现代码

你可以选择以下任意一种方式实现需求,两种方案都不会生成grouped_df类对象,仅在原数据框新增目标字段:

1. 基础R实现(无需加载第三方包)

直接用内置的ave()函数即可实现分组聚合后对齐原数据长度的计算:

df$family_income <- ave(df$income, df$id_family, FUN = sum)

ave()函数会自动按照第二个参数的分组维度,对第一个参数执行指定的FUN运算,返回和原数据行数完全一致的向量,直接赋值即可。

2. dplyr实现(适合习惯tidyverse语法的场景)

如果你使用dplyr 1.1.0及以上版本,可以用临时分组参数.by,计算完成后自动解除分组,不会产生grouped_df对象:

library(dplyr)
df <- df %>%
  mutate(family_income = sum(income), .by = id_family)

效果验证

你可以用以下代码构造示例数据测试:

df <- data.frame(
  id_person = c("001", "002", "003", "004", "005"),
  income = c(100, 120, 100, 220, 300),
  id_family = c("A1", "B2", "B5", "A1", "B5")
)

运行上述任意代码后,即可得到你预期的结果,且class(df)不会包含grouped_df类。


内容的提问来源于stack exchange,提问作者Igor Mendonça

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:15:08