ここで、先ほどの質問に対する暫定的な解決策を示します。機能しているように見えますが、シャッフルを見るとddply
、実際にはランダムなのだろうかと思います。ブロック 4のように、いくつかの分割は不運に思えBAAAAB
ます。使用して繰り返しシャッフルすることを考えていまし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 Plan Procedure を使用して、さまざまなブロック サイズで順列ブロックのランダム化を実行する方法を学びました。私は、R を使用して同じことを行う方法を見つけようとしています。パッケージはblockrand
、experiment
治療グループ間で患者の数が等しくないことを許可しません。
30 人の患者を実験群と対照群に 2:1 の比率で無作為に割り当てたいとします (つまり、実験群で N=20、対照群で N=10)。さらに、6 人の患者の 3 つのブロックと 3 人の患者の 4 つのブロックが必要であり、ブロック サイズをランダムに変化させたいとします。Rを使用してそれを行うにはどうすればよいですか?