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

如何在R中实现随机数多次累加生成向量模拟财富累计

实现方案

结论

可以使用lapply实现你的需求,同时也有性能更优的向量化方案可供选择,两种方案都不会生成中间列,可自由调整累加次数,支持1000次甚至更高次数的计算:


方案1:向量化实现(推荐)

利用R的向量化运算特性,计算效率远高于循环类方案,代码最简洁:

library(dplyr)

# 自定义累加次数,可随意修改为100、1000等数值
accumulate_times <- 100

df_final <- df %>%
  mutate(
    final_wealth = wealth + rowSums(replicate(accumulate_times, runif(nrow(.), -10, 10)))
  ) %>%
  select(households, final_wealth)

方案2:lapply实现

完全基于lapply实现的版本,符合你的要求:

library(dplyr)

accumulate_times <- 100

df_final <- df %>%
  mutate(
    final_wealth = wealth + Reduce(`+`, lapply(1:accumulate_times, function(i) runif(nrow(.), -10, 10)))
  ) %>%
  select(households, final_wealth)

补充说明

如果后续你需要观察每一次累加后的财富变化过程,可以将上述代码中的Reduce替换为purrr::accumulate,即可保留所有中间节点的累计结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:00:02