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

如何使用group_by按条件分组聚合:将符合条件的行合并为OTHER组

实现方法

不需要group_by()提供特殊的定向分组参数,直接在分组时自定义分组键的映射规则,就能实现「符合条件的行合并为一组、其余行各自保留独立分组」的效果,以给出的样例数据为例,dplyr实现代码如下:

library(dplyr)

df2 <- df1 %>%
  # 构造分组规则:count<10的行统一分配到OTHER组,其余行用原company_location作为分组标识
  group_by(company_location = ifelse(count < 10, "OTHER", company_location)) %>%
  # 按分组对count求和
  summarise(count = sum(count), .groups = "drop") %>%
  # 调整顺序,把OTHER行放到末尾,和目标结果格式对齐
  arrange(company_location == "OTHER", company_location)

逻辑说明

  • 所有满足count < 10条件的行,不管原本的company_location是什么值,都会被赋予相同的分组值OTHER,自然会被聚合为同一行,求和后count值为JP(6)+HN(1)+HU(1)=8,和预期一致
  • 不满足count < 10条件的行,直接保留原company_location作为分组值,不同location的行分组键互不相同,因此会各自保留独立分组,不会和其他行合并,原始count值也会完整保留

运行代码后得到的结果和目标df2完全一致:

# A tibble: 4 × 2
  company_location count
  <chr>            <int>
1 DE                  28
2 GB                  47
3 US                 355
4 OTHER                8

如果原始数据中本身就存在company_location取值为OTHER的记录,为了避免分组冲突,可以先给待聚合的行分配一个不会和原始值重复的临时分组标签,聚合完成后再重命名为OTHER即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:03:27