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

R语言分组汇总数据:保留指定分组的原始数值

解决方案

针对你的需求,我们可以将数据拆分为两部分分别处理后合并结果,具体步骤如下:

  1. 对name不等于"c"的行,按name和type分组求和value列;
  2. 对name等于"c"的行,直接保留原始value值并重命名为sum_value;
  3. 合并两部分数据并按name和type排序。

具体R代码如下:

# 加载dplyr包(若未安装先执行 install.packages("dplyr"))
library(dplyr)

# 原始数据框
df <- data.frame(name= c( "a","a","b","b","b","c","c","c"),
                 type= c("imp","imp","imp","imp","exp","imp","imp","imp"),
                 value= c(1,2,2,2,6,3,4,5))

# 处理非"c"的分组求和
non_c_data <- df %>%
  filter(name != "c") %>%
  group_by(name, type) %>%
  summarise(sum_value = sum(value), .groups = "drop")

# 处理"c"的保留原始值
c_data <- df %>%
  filter(name == "c") %>%
  rename(sum_value = value)

# 合并并排序得到目标数据框
new_df <- bind_rows(non_c_data, c_data) %>%
  arrange(name, type)

# 查看结果
new_df

运行后得到的new_df与你提供的目标数据框完全一致:

> new_df
  name type sum_value
1    a  imp         3
2    b  imp         4
3    b  exp         6
4    c  imp         3
5    c  imp         4
6    c  imp         5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:35:08