R程序中治疗组和对照组的排列

时间:2019-09-15 03:33:43

标签: r

我想将120名参与者分成40个块,每个参与者3个,进行分组随机化。每个块中有2位参与者被分配治疗(用1表示),而1位参与者被分配对照(用0表示)。

我想使用R程序将每个块中的数字(1、1、0)随机化。 生成我使用的数字

  

n00 = 1

     

n11 = 2

     

labels = rep(c(rep(0,n00),rep(1,n11)),40)

我该如何随机分配3个块中的数字,以便有2个1和1 0?

1 个答案:

答案 0 :(得分:1)

评论。我在您的代码中看不到任何随机化。 分配两个主题有三种可能性 三分之二用于治疗,另一半用于控制: $(1,1,0),(1,0,1), (0,1,1)。$

R函数sample使用随机数生成器进行随机采样。以下R代码将一次随机提供这三个分配之一。

如果您一开始就使用与我相同的种子,那么您将获得 和我一样的输出。对于意外的结果,可以让R选择 未知种子。

set.seed(914)
sample(c(0,1,1), 3)
[1] 0 1 1
sample(c(0,1,1), 3)
[1] 0 1 1
sample(c(0,1,1), 3)
[1] 1 0 1
sample(c(0,1,1), 3) 
[1] 1 0 1
sample(c(0,1,1), 3)
[1] 1 0 1
sample(c(0,1,1), 3)
[1] 1 1 0

以下R程序将为20个块分配矩阵MAT。 (读取列。) 您可以将20更改为40

当然,为了这个 有意义的是,您必须预先将数字1-20分配给块和麻木 对街区内的人1-3。

set.seed(2019)
MAT = replicate(20, sample(c(0,1,1), 3));  MAT

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11]
[1,]    1    1    1    1    0    1    1    1    0     1     1 
[2,]    1    0    0    1    1    0    0    1    1     1     0
[3,]    0    1    1    0    1    1    1    0    1     0     1
     [,12] [,13] [,14] [,15] [,16] [,17] [,18] [,19] [,20]
[1,]     0     1     1     1     1     0     0     1     1
[2,]     1     0     1     1     1     1     1     0     0
[3,]     1     1     0     0     0     1     1     1     1