r以给定的概率生成随机二元结果

时间:2015-06-05 14:03:50

标签: r

我希望以0.05的给定概率生成随机二元结果。 所以平均而言,我应该每20次抽取得到一个正(1)和19个负数(0)。

我怎么能用R?

做到这一点

我知道如何以0.5的概率生成:

sample(0:1, 10000, replace=T)
mean(sample(0:1, 10000, replace=T))
[1] 0.5034

但我需要概率为0.05。

3 个答案:

答案 0 :(得分:10)

有一个用于二项分布的随机生成器,其目的正是生成这样的样本:

x <- rbinom(n=10000, size=1, prob=0.05)

答案 1 :(得分:4)

prob函数中有一个参数sample

您的电话将是

sample(0:1, 10000, replace=T,prob=c(0.95,0.05))

答案 2 :(得分:0)

如果您严格只想生成一个随机符号(如我的情况!),而又不想整个间隔...您可以使用:

2*rbinom(n=1, size=1, prob=0.5)-1

这将生成+1或-1作为输出。

请注意prob=0.5,您需要根据所需的概率对其进行调整。