首页 > 解决方案 > 嵌套for循环以在R中生成具有不同概率的随机变量

问题描述

我正在尝试编写一个 for 循环,该循环使用不同的概率值从几何分布中生成随机变量。但是,我编写的代码仅使用序列中的最后一个概率来生成随机变量,见下文。

x <- list()
y <- list()
probs <- seq(0.1, 0.9, 0.1)
for (i in 1:length(probs)) {
  for (j in 1:10000) {
    x[j] <- rgeom(n=1, prob=probs[i])+1
    y[j] <- probs[i]
  }
}

我如何循环概率为每个概率生成 10000 RV?

标签: rloopsnested

解决方案


一个简单的解决方案可能是:

    x <- list()
    y <- list()
    probs <- seq(0.1, 0.9, 0.01)
    j<-1
    for (i in 1:length(probs)) {
      x[[j]] <- rgeom(n=10000, prob=probs[i])+1
      y[[j]] <- rep(probs[i], 10000)
      j<-j+1
    }
    x<- list(unlist(x))
    y<- list(unlist(y))

推荐阅读