如何始终确保在R中具有指定组大小的混洗样本

时间:2017-10-31 19:18:59

标签: r probability sampling

我只是试图通过使用R将样本分成具有基于指定概率的固定组大小的组,但是我们希望始终确保混洗样本的组大小始终相同。例如,假设样本大小为100,组数为4,对于每个组,组大小分别为40,30,20,10,如下所示:

category_split <- sample(1:4, 100, replace=T, prob=c(0.4,0.3,0.2,0.1))
category_split
# [1] 1 2 3 3 1 1 3 3 2 1 1 2 1 4 2 1 3 2 1 1 1 2 3 4 1 2 2 1 2 2 1 1 1 3 3 4 3 1 2 2 2 3 1 1 3 2 3 1 1 1 4 1 4 1
#[55] 1 2 3 4 1 1 1 1 2 1 3 2 2 3 1 3 3 2 1 4 1 2 1 2 3 2 3 3 1 2 1 2 3 1 1 1 1 1 3 2 3 1 1 1 2 3
table(category_split)
#category_split
# 1  2  3  4 
#43 26 24  7

但是,由于采样过程的概率性质,结果并不总能确保具有与规定的相同的指定组大小(40,30,20,10),尽管结果大致相似。有没有办法通过使用sample函数或R中的任何其他函数来获得具有相同组大小的随机混洗结果?

1 个答案:

答案 0 :(得分:4)

首先创建一个包含必要元素数的向量,然后创建sample

category_split = sample(rep(1:4, c(40, 30, 20, 10)))

table(category_split)
#category_split
# 1  2  3  4 
#40 30 20 10 
相关问题