r-如何创建一个向量,将重复生成的随机数相加



目标

我想看看随着时间的推移,随机的利润/损失是如何累积的。

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_ health";列,我想在final_wealth列中添加一个随机数向量,比如100次,然后查看结果。理想情况下,我会做1000次。

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

谢谢!

我们可以使用tidyverse

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

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

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

最新更新