如何创建一个对重复生成的随机数求和的向量?

How to create a vector that sums random numbers generated repeatedly?

目标

我想看看随机性 profits/losses 是如何随时间累积的。

library(dplyr)

names <- seq(1:1000)
wealth <- rep(0, 1000)
df <- as.data.frame(bind_cols(names, wealth)) 
colnames(df) <- c("households", "wealth")
View(df)

尝试

df2 <- df %>% 
    mutate(new_wealth = runif(1000,-10,10),
           new_wealth2 = runif(1000,-10,10),
           final_wealth = wealth + new_wealth+new_wealth2) %>% 
  select(households, final_wealth)

需要解决方案

我不想创建大量“new_wealth”列,而是想将随机数向量添加到 final_wealth 列,比如 100 次,然后查看结果。理想情况下,我会这样做 1000 次。

我不关心 new_wealth 列,只想要 final_wealth 列。我可以使用 lapply 来做到这一点吗?如果没有,你们有没有更好的解决方案?

谢谢!

我们可以使用 replicate 来重复 runif 代码任意次数。使用 rowSums 执行求和并添加一个新列。

n <- nrow(df)
n_repeat <- 100
df$final_wealth <- rowSums(replicate(n_repeat, runif(n,-10,10)))

我们可以使用tidyverse

library(dplyr)
library(purrr)
df1 <- df %>% 
       mutate(final_wealth = rerun(100, runif(n(), -10, 10)) %>%
             reduce(`+`))