【问题标题】:Permutation of treatment and control groups in R programR程序中治疗组和对照组的排列
【发布时间】:2019-09-15 03:33:43
【问题描述】:

我想将 120 名参与者随机分成 40 个区块,每组 3 名参与者。每个区块内的 2 名参与者被分配到治疗组(用 1 表示),1 名参与者被分配到控制组(用 0 表示)。

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

n00=1

n11=2

标签 = rep(c(rep(0,n00), rep(1,n11)),40)

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

【问题讨论】:

    标签: r


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-20
      • 1970-01-01
      • 2020-02-26
      • 1970-01-01
      相关资源
      最近更新 更多