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

如何在R语言中不使用for循环实现向量迭代累加

更优的累加向量实现方案

你用for循环的方式虽然能实现需求,但每次通过c(sums, s)扩展向量时,都会重新分配内存,数据量大的时候效率会很低。R里有专门的内置函数可以直接搞定这个需求:

直接用cumsum()函数,一行代码就能生成累加向量:

vector <- c(1,2,3)
sums <- cumsum(vector)

运行后sums就是[1, 3, 6],完全符合你的要求。

这个函数是R底层优化的向量化操作,不需要手动循环,不仅代码简洁,处理大数据量时的执行效率比for循环高很多。

如果想手动实现类似逻辑(仅作理解,不推荐实际使用),也可以预先分配好向量空间再填充,避免频繁内存分配,比如:

vector <- c(1,2,3)
sums <- numeric(length(vector))
current_sum <- 0
for (i in seq_along(vector)) {
    current_sum <- current_sum + vector[i]
    sums[i] <- current_sum
}

但显然cumsum()是最省心高效的选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 19:29:58