【问题标题】:How to always ensure the shuffled samples with the designated group size in R如何始终确保在 R 中具有指定组大小的混洗样本
【发布时间】:2017-10-31 19:18:58
【问题描述】:

我只是尝试使用 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 中的任何其他函数来获得具有相同组大小的随机洗牌结果?

【问题讨论】:

    标签: r probability sampling


    【解决方案1】:

    首先创建一个包含必要数量元素的向量,然后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 
    

    【讨论】:

      猜你喜欢
      • 2018-08-06
      • 2021-02-23
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      • 1970-01-01
      • 2018-02-06
      • 2023-03-27
      • 1970-01-01
      相关资源
      最近更新 更多