样本向量完全根据给定的概率

时间:2015-12-09 18:52:43

标签: r sample

我相信在R中应该有这个功能。但是,我无法找到它。我需要的是根据给定的概率得到向量。我认为sample可以做到这一点,但这不是我想要的。

sample(c(1, 2, 3, 4), size = 4, prob=c(0.25, 0.25, 0.25, 0.25)) 

给出

# [1] 1 3 4 2

这是正确的。

然后我尝试

sample(c(1, 2, 3, 4), size = 8, replace = T, prob=c(0.25, 0.25, 0.25, 0.25)) 

# [1] 1 4 4 3 2 3 1 3

我真正需要的是像

#[1] 1 4 4 2 2 3 1 3

OR

#[1] 2 3 1 1 4 4 2 3

OR类似的东西,其中给定的向量完全根据给定的概率划分。因此,在给定的示例中,输出向量应包含0.25中每个向量的c(1, 2, 3, 4)。因此,如果size = 8则其中的0.25为2,那应该是c(1, 2, 3, 4)中每个元素的长度。 R中是否已经有一个函数,或者我必须编写一个自定义函数?

1 个答案:

答案 0 :(得分:2)

由于您希望每个值的重复次数是确定性的而不是随机的,因此请使用<ul> <li><span class="vaTop" itemindex="14" amount="500.00">$500</li> <li><span class="vaTop" itemindex="15" amount="300.00">$300</li> <li><span class="vaTop" itemindex="16" amount="150.00">$150</li> <li><span class="vaTop" itemindex="17" amount="75.00">$75</li> <li><span class="vaTop" itemindex="18" amount="35.00">$35</li> </ul>(而不是rep)与{{1}中的概率成比例地重复每个值}。然后,您可以创建结果向量的随机排列。

sample

然后创建100个随机排列:

prob