【发布时间】:2018-04-06 09:50:32
【问题描述】:
我想在 0 和 1 之间采样一个随机数,有 90% 的概率从 0-0.3 采样,10% 的概率在 0.3-1 之间采样。
我尝试了以下方法:
0.9*runif(1, 0, 0.3) + 0.1*runif(1, 0.3, 1)
但这还不够:例如,我永远不会得到数字 0.8。
在 Base R 中有简单的方法吗?
【问题讨论】:
-
类似
if(runif(1) <= 0.9) runif(1, 0, 0.3) else runif(1, 0.3, 1)? -
runif(2, c(0, 0.3), c(0.3, 1))[sample(c(1, 2), size = 1, prob = c(0.9, 0.1))]。不过,我需要考虑如何对其进行矢量化。