这是我之前提出的问题的临时解决方案。它似乎有效,但是当我看到洗牌时,ddply
我想知道它是否实际上是随机的。一些分裂似乎很不幸,就像BAAAAB
在第 4 块中一样。我曾考虑过反复改组使用ddply
,但有兴趣看到其他潜在的解决方案。
#### Load packages ####
require(plyr)
#### Create randomization ####
set.seed(1984)
nBlocks <- 1:9
sBlocks <- c( sample( c(rep(3,4), rep(6,3)) ), sample( c(3,6) ) )
trtGroup <- c("A","B")
trtRatio <- 2:1
rand <- data.frame( block=rep(nBlocks, sBlocks), treatment=rep(trtGroup, trtRatio) )
rand <- ddply(rand[sample(row.names(rand)), ], .(block))
rand
问题:
我最近学习了如何使用 SAS 计划程序执行具有不同块大小的置换块随机化。我一直试图弄清楚如何使用 R 来做同样的事情。 Theblockrand
和experiment
包不允许跨治疗组的患者数量不等。
假设我想以 2:1 的比例将 30 名患者随机分配到实验组和对照组(即实验组 N=20,对照组 N=10)。进一步假设我想要 3 个 6 名患者的区块和 4 个 3 名患者的区块,并且我想随机改变区块大小。我如何使用 R 来做到这一点?