【发布时间】:2017-02-15 22:06:37
【问题描述】:
我希望根据数字序列(即 0 0 1 0 1 0 1...)创建多个列表,直到有 10 次负二项分布的成功试验。我显然不太了解列表函数,因为我当前的代码没有检索到任何有价值的东西:
z = as.list(supply(1:10, function(x) rnbinom(inf, 10, 1/x)))
概率需要按照序列 1/n 变化,n=1,2,...,10,“实验”一直持续到 10 次成功,然后结果(“1 1 1 1 1 1例如,1 1 1 1" 将是第一个,因为需要列出 Pr=1)。
【问题讨论】:
-
lapply(seq(10), function(x){rbinom(10, 1, 1/x)})?您的代码中有一些有问题的拼写错误,并要求rbinom提供无穷大的数字,这会导致问题。 -
我希望试验一直持续到 10 次成功,所以我将无限量放在那里。所以有些序列会比其他序列有更大的结果。
-
rbinom不是这样工作的;你必须事先告诉它你想要多少个数字。您可以使用while循环和cumsum来做到这一点,但这是非常不明智的;可能更好地制作太多数字然后子集。