You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按数据指定的不同组大小随机分配观测值

按指定组大小随机分配观测值的解决方案

嘿,我完全懂你要的是什么——不用seq()那种手动划分的方式,而是严格按照数据决定的组大小,把观测值随机分配到各组里对吧?用R的基础函数就能轻松实现,而且能保证每组的规模完全符合你的要求,步骤如下:

  • 第一步:明确各组的目标规模
    先把你需要的四个组的大小定义好,比如假设你的四个组分别需要20、30、25、25个观测值(直接替换成你实际的数据就行):

    # 替换成你自己的组大小
    target_group_sizes <- c(20, 30, 25, 25)
    
  • 第二步:生成对应规模的组标识向量
    用rep()函数把每个组的标签重复对应次数,生成一个包含所有组标识的向量:

    # 如果想用自定义标签(比如字母/名称),把1:length(...)换成你要的标签就行
    group_tags <- rep(1:length(target_group_sizes), times = target_group_sizes)
    

    比如你想用自定义名称的话:

    group_tags <- rep(c("RegGroup1", "RegGroup2", "RegGroup3", "RegGroup4"), times = target_group_sizes)
    
  • 第三步:随机打乱组标识,完成分配
    用sample()函数把上面的向量彻底打乱,这样就得到了完全随机的分组结果:

    assigned_groups <- sample(group_tags)
    
  • 第四步:绑定到你的数据集
    把生成的分组结果添加到你的原始数据框里就大功告成了:

    # 假设你的数据集叫original_data
    original_data$assigned_group <- assigned_groups
    

验证分组规模是否正确

可以用table()函数快速检查每组的数量是否和你设定的一致:

table(assigned_groups)

这种方法的核心是先按要求生成足够数量的组标识,再通过随机打乱实现无偏分配,完全避开了seq()手动划分的麻烦,而且能严格保证每组的大小符合预期。

内容的提问来源于stack exchange,提问作者bill999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:13:06