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

如何在R的blockrand()函数中设置组的不等分配及指定块大小?

解决blockrand包实现2:1分组、块大小3和6的问题

你之前的问题核心是没正确设置处理组比例参数:blockrand默认是1:1分组,此时block.sizes的数值会自动乘以组数(2)得到总块大小;当需要非1:1比例时,必须显式指定分组比例,此时block.sizes直接对应每个块的总样本量,包会自动按比例分配各组人数。

具体代码实现

library(blockrand)

# 生成符合要求的随机分组
rand_output <- blockrand(
  n = 30,  # 总样本量,需为3和6的公倍数,比如30、18、24等
  treatments = c("A", "B"),  # 两组名称,可自定义
  treatment.ratio = c(2, 1),  # 指定组A:组B = 2:1的分配比例
  block.sizes = c(3, 6),  # 直接设置目标块总大小为3和6
  id.prefix = "PT-",  # 受试者ID前缀,可自定义
  block.prefix = "BLOCK-"  # 块ID前缀,可自定义
)

# 查看前几条分组结果
head(rand_output)

结果验证

你可以通过以下代码检查每个块的分组是否符合2:1比例:

# 按块统计各组人数分布
table(rand_output$block, rand_output$treatment)

输出结果会显示:

  • 大小为3的块:2个A、1个B
  • 大小为6的块:4个A、2个B

关键注意事项

  • treatment.ratio = c(2,1)是实现2:1分配的核心,必须显式设置
  • block.sizes直接填目标总块大小即可,无需做倍数调整
  • 总样本量n需是3和6的公倍数,确保所有样本能被分配到完整的块中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:15:01