如何在不使用已创建的函数的情况下模拟R中的负二项式随机变量?

时间:2018-02-26 01:33:10

标签: r

我有一个我正在研究的代码,它应该模拟负二项式随机变量。我知道R中已经存在可以执行此类操作的函数,但我无法使用它们并且需要使用while循环或类似的东西。

我知道某天下雨的概率是10%,我需要模拟选择随机天数,直到选择了5个下雨天。我应该回到我有多少天,直到我有5个下雨天。

我有以下代码,它可以模拟我下雨一天所需的天数,但我不知道应该如何调整它。我最初的想法是我会将num.days = 1更改为num.days = 5,但这只会改变迭代在while循环中开始的点,不是吗?

我需要在代码中添加什么才能获得在5个下雨天之前所需的天数?

current.day = sample(c("R","NR"),1,prob = c(0.10,0.90))
num.days = 1
while(current.day != "R"){
  current.day = sample(c("R","NR"),1,prob = c(0.10,0.90))
  num.days = num.days+1
}
num.days
all.days = sapply(1:20000,function(i){
  current.day = sample(c("R","NR"),1,prob = c(0.10,0.90))
  num.days = 1
  while(current.day != "R"){
    current.day = sample(c("R","NR"),1,prob = c(0.10,0.90))
    num.days = num.days+1
  }
  return(num.days)
})

0 个答案:

没有答案