首页 > 解决方案 > 每天使用 R 随机分配参与者进行治疗

问题描述

问题:

我正在尝试使用 R 生成随机研究设计,其中一半的参与者被随机分配到“治疗 1”,另一半被分配到“治疗 2”。但是,因为一半的受试者是男性,一半是女性,并且我还想确保相同数量的男性和女性接受每种治疗,所以应该将男性和女性的一半分配给“治疗 1”,剩下的一半应分配给“治疗 2”。

这种设计有两个并发症:(1)这是一项为期一年的研究,必须每天分配参与者进行治疗;(2) 每个参与者必须在 28 天内至少接触“治疗 1”10 次。

这甚至可以在 R 界面中实现自动化吗?我认为是这样,但我认为我作为 R 程序员的初学者身份禁止我自己找到解决方案。几天来,我一直在努力弄清楚如何实现这一点,并且查看了该网站上许多听起来相似但无法在此处成功应用的帖子。我希望有人知道一些技巧可以帮助我解决这个问题,任何建议将不胜感激!

我试过的:

具体信息

# There are 16 participants
p <- c("P01", "P02", "P03", "P04", "P05", "P06", "P07", "P08", "P09", "P10", "P11", "P12", "P13", "P14", "P15", "P16")

# Half are male and half are female
g <- c(rep("M", 8), rep("F", 8))

# I make a dataframe but this may not be necessary
df <- cbind.data.frame(p,g)

# There are 365 days in one year
d <- seq(1,365,1)

...不幸的是,我不知道如何从这里开始。

理想结果:

我正在设想一些近似于这张表的结果: 我还没有足够的声望点来嵌入图像,所以这里是链接,对不起!

基本上每个参与者有一列,每一天都有一行。与每一天相关的是分配到治疗 1 (T1) 或治疗 2 (T2),8 名男性中的 4 名和 8 名女性中的 4 名被分配到 T1,其余的被分配到 T2。这些治疗每天重新分配,为期 1 年。此图表未描述每个参与者在 28 天内至少接触 T1 10 次的需要。如果其他东西更有意义,表格不必看起来像那样!

标签: rrandomsampling

解决方案


第一个问题很好。感谢您发布。

我对您的限制的理解是,在任何一天,四名男性必须接受一种治疗,四名男性必须接受另一种治疗。八名女性也是如此:每次治疗必须有四名女性。实际上,这意味着在任何一天,您只需要将随机样本应用于四个人,因为其余个人将有效地受到前四个人的限制。男性 5 - 8 将与男性 1 - 4 配对,因此男性 1 总是得到与男性 5 相反的处理,男性 2 得到与男性 6 相反的处理,等等。同样的模式应用于女性,所以尽管个人分配是随机的,但在任何一天,总是有 4 名女性接受治疗 1、4 名女性接受治疗 2、4 名男性接受治疗 1 和 4 名男性接受治疗 2。

您需要至少 10 天,每个人在 28 天内接受治疗 1。这进一步将随机化限制在确保每个 28 天期间包含总共 14 天的治疗 1 和 14 天的治疗 2 可能同样有意义的程度。

这样,您可以像这样获得分配:

four_cols <- replicate(4, as.vector(replicate(14, sample(rep(1:2, 14))))[1:365])
eight_cols <- cbind(four_cols, 3 - four_cols)
sixteen_cols <- cbind(1:365, eight_cols, eight_cols)
df <- setNames(as.data.frame(sixteen_cols), c("Day", paste0("M", 1:8), paste0("F", 1:8)))

现在df是一个布局类似于您的表格的数据框。治疗以数字 1 或 2 给出,参与者被标记为 M1 - M8 和 F1 - F8:

df
#>    Day M1 M2 M3 M4 M5 M6 M7 M8 F1 F2 F3 F4 F5 F6 F7 F8
#> 1    1  1  1  1  1  2  2  2  2  1  1  1  1  2  2  2  2
#> 2    2  2  2  2  2  1  1  1  1  2  2  2  2  1  1  1  1
#> 3    3  2  1  1  2  1  2  2  1  2  1  1  2  1  2  2  1
#> 4    4  2  2  2  1  1  1  1  2  2  2  2  1  1  1  1  2
#> 5    5  1  2  1  1  2  1  2  2  1  2  1  1  2  1  2  2
#> 6    6  2  2  2  2  1  1  1  1  2  2  2  2  1  1  1  1
#> 7    7  1  2  1  1  2  1  2  2  1  2  1  1  2  1  2  2
#> 8    8  1  1  2  2  2  2  1  1  1  1  2  2  2  2  1  1
#> 9    9  2  2  1  2  1  1  2  1  2  2  1  2  1  1  2  1
#> 10  10  2  1  2  2  1  2  1  1  2  1  2  2  1  2  1  1
#> 11  11  1  2  2  2  2  1  1  1  1  2  2  2  2  1  1  1
#> 12  12  2  1  2  1  1  2  1  2  2  1  2  1  1  2  1  2
#> 13  13  1  1  1  1  2  2  2  2  1  1  1  1  2  2  2  2
#> 14  14  2  1  1  1  1  2  2  2  2  1  1  1  1  2  2  2
#> 15  15  1  1  2  1  2  2  1  2  1  1  2  1  2  2  1  2
#> 16  16  1  2  1  1  2  1  2  2  1  2  1  1  2  1  2  2
#> 17  17  2  2  2  2  1  1  1  1  2  2  2  2  1  1  1  1
#> ...
#> 365 365  2  2  2  2  1  1  1  1  2  2  2  2  1  1  1  1

推荐阅读