我试图以 100000 次的概率从两个不同的分布中提取。不幸的是,我看不出我的 for 循环有什么问题,但是,它只添加了 1 个值,simulated_data
而不是所需的 100,000 个值。
问题1:我该如何解决这个问题?
问题 2:有没有一种更有效的方法,我不必遍历列表中的 100,000 个项目?
#creating a vector of probabilities
probabilities <- rep(0.99,100000)
#creating a vector of booleans
logicals <- runif(length(probabilities)) < probabilities
#empty list for my simulated data
simulated_data <- c()
#drawing from two different distributions depending on the value in logicals
for(i in logicals){
if (isTRUE(i)) {
simulated_data[i] <- rnorm(n = 1, mean = 0, sd = 1)
}else{
simulated_data[i] <- rnorm(n = 1, mean = 0, sd = 10)
}
}