我希望以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。
答案 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
,您需要根据所需的概率对其进行调整。