如何创建一个对重复生成的随机数求和的向量?
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(`+`))
目标
我想看看随机性 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(`+`))