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

R语言高效实现保留Top5数据并合并其余为Other的方法

更高效的R语言实现方案

你的需求是按variable降序保留前5行,剩余行合并为name="other"并对variable求和,以下是两种更简洁高效的实现方案,尤其在处理大数据集时优势明显:

方法一:使用dplyr(tidyverse)

dplyr的语法直观连贯,代码紧凑易读:

library(dplyr)

final_result <- my_data %>%
  arrange(desc(variable)) %>%
  mutate(name = ifelse(row_number() <= 5, name, "other")) %>%
  group_by(name) %>%
  summarise(variable = sum(variable)) %>%
  ungroup()

方法二:使用data.table(适合大数据量)

data.table在处理大规模数据时的执行速度远优于基础R,语法简洁高效:

library(data.table)

setDT(my_data)
final_result <- my_data[order(-variable)][
  , .(variable = sum(variable)), 
  by = .(name = ifelse(.I <= 5, name, "other"))
]

方案优势

  • 代码更简洁:无需手动拆分数据集、单独求和再合并,一步完成所有操作
  • 可读性更强:从排序到分组求和的逻辑连贯清晰
  • 性能更优:尤其是data.table,在处理十万级以上数据时,效率比基础R的拆分合并方式提升显著

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 04:18:29