如何在R中获得正确的模拟

时间:2013-03-18 01:14:46

标签: r

问题:
假设以下随机数表中的数字对应于到达大型工厂工作的人员。设0,1和2为吸烟者,3-9为非吸烟者。许多人到达后,计算吸烟者的总相对频率。

这是我的R代码,用于模拟吸烟者的总相对频率。

simulation<-function(k){
    x<-round(runif(k)*10)
    return  (length(x[x<3])/k)}

> simulation(100)
[1] 0.27
> simulation(1000)
[1] 0.244
> simulation(10000)
[1] 0.2445
> simulation(100000)
[1] 0.24923

为什么我无法得到0.3的结果?

1 个答案:

答案 0 :(得分:8)

如果您只想在数字0,1,...,9上获得离散的均匀分布,那么只需使用样本

sample(0:9, k, replace = TRUE)

使用你现在拥有的代码,你实际得到的概率为.05,得到0或10,概率为.10,得到1-9。