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

R语言实现向量元素按n个为一组依次连续求和的方法

R语言向量固定长度分组求和实现方案

我们可以通过基础R函数实现通用的分组求和功能,无需依赖第三方包,同时支持自定义分组长度,适配不同长度的输入向量。

通用函数实现

方法1:基于tapply实现(兼容性好)

group_sum <- function(x, group_len) {
  # 生成分组标签,不足一组的元素自动归为最后一组
  group_tags <- rep(1:ceiling(length(x)/group_len), each = group_len)[1:length(x)]
  # 按分组求和
  as.vector(tapply(x, group_tags, sum, na.rm = TRUE))
}

方法2:基于rowsum实现(性能更优,适合长向量)

group_sum_fast <- function(x, group_len) {
  group_tags <- rep(1:ceiling(length(x)/group_len), each = group_len)[1:length(x)]
  as.vector(rowsum(x, group_tags))
}

效果测试

用示例向量测试效果如下:

# 测试用原始向量
vector <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)

# 每2个为一组求和
group_sum(vector, 2)
# 输出:[1]  3  7 11 15 19 23

# 每3个为一组求和
group_sum(vector, 3)
# 输出:[1]  6 15 24 33

补充说明

如果输入向量长度不是分组长度的整数倍,函数会自动将剩余不足一组的元素作为最后一组求和;若需要丢弃不足一组的元素,把代码中的ceiling替换为floor即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 08:45:03