r - 从具有间隙的均匀分布中抽取随机样本

标签 r random sampling

我有兴趣从分布在 2 个区间的均匀分布中抽取随机样本:从 -2 到 -1 和从 1 到 2。属于这些区间的任何值都应该具有相等的采样概率,而另一个值(例如从 -1 到 1)被采样的概率应该为 0。

runif 函数只接受单个数字作为上限和下限的参数。因此,不可能从两个区间生成该函数样本。

另一种选择是运行两个 runif 函数,一个在 -2 到 -1 的区间上,一个在 1 到 2 的区间上。但是,在这种情况下,我明确地这样做了在每次抽奖中,每个区间抽取的号码数量相等。

我想让它发生变化,虽然平均而言正数和负数的数量大致相同,但我仍然需要看到一些随机变化,例如从正区间中抽取更多数字,反之亦然。

最佳答案

编辑:由于我的第一个答案导致正值和负值的数量完全相等,这里是另一种执行 runif 3 次的方法:

ifelse(runif(1000)>0.5, runif(1000,-2,-1), runif(1000,1,2))

似乎没有记录,但实验让我:

runif(1000, min=c(-2, 1), max=c(-1, 2))

例子:

hist(runif(1000000, min=c(-2, 1), max=c(-1, 2)))

enter image description here

关于r - 从具有间隙的均匀分布中抽取随机样本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75436827/

相关文章:

使用 R 重新排序李克特图中的组

python - 从功能上打乱列表

Android加速度计采样率/延迟稳定

r - 更改值顺序时样本的 Set.seed 问题

r - R 中循环索引被忽略?

R:如何更改facet_grid中每行的列数

python - 从数组中选择一个随机元素

javascript - 不重复前一个数字的数学随机数

algorithm - 如何存储未知大小的顺序呈现集合的样本?

r - 根据列表中的名称获取平均值的简便方法