gpt4 book ai didi

随机分配治疗组的一半

转载 作者:行者123 更新时间:2023-12-03 23:47:36 25 4
gpt4 key购买 nike

我正在随机分配实验的治疗方法。我有四个站点 (Site1, ... Site4),其中 12 个实验单元(例如,1 ... 12)被复制了四次(例如,1 ... 4)。对于每个重复,我随机分配了三种处理之一(例如,trt1 ...trt3)。

我现在需要为我的每个站点的重复中的每个处理分配一个 SecondTreatment(是或否)。 trt2 应始终为“y”,而我想将“y”随机分配给 trt1 的一半,将“n”分配给 trt1 的另一半,然后对 trt3 执行相同操作。应该给我每个副本:带有 4 个“y”的 trt2、带有 2 个“n”的 trt1 和带有 3 个“n”的 trt3。

我的数据如下所示:

Site      Experimental unit     Replicate   Treatment        SecondTreatmentAssign (y/n)
Site1 1 1 trt1
Site1 2 1 trt2
Site1 3 1 trt3
Site1 4 1 trt3
Site1 5 1 trt1
Site1 6 1 trt2
Site1 7 1 trt3
Site1 8 1 trt2
Site1 9 1 trt1
Site1 10 1 trt1
Site1 11 1 trt3
Site1 12 1 trt2
Site1 1 2 trt2
Site1 2 2 trt3
Site1 3 2 trt1
Site1 4 2 trt2
Site1 5 2 trt1
Site1 6 2 trt3
Site1 7 2 trt2
Site1 8 2 trt2
Site1 9 2 trt1
Site1 10 2 trt2
Site1 11 2 trt1
Site1 12 2 trt3
Site1 1 3 trt2
Site1 2 3 trt1
Site1 3 3 trt3
Site1 4 3 trt3
Site1 5 3 trt2
Site1 6 3 trt1
Site1 7 3 trt3
Site1 8 3 trt2
Site1 9 3 trt1
Site1 10 3 trt1
Site1 11 3 trt3
Site1 12 3 trt2
Site1 1 4 trt3
Site1 2 4 trt2
Site1 3 4 trt1
Site1 4 4 trt3
Site1 5 4 trt2
Site1 6 4 trt1
Site1 7 4 trt3
Site1 8 4 trt1
Site1 9 4 trt2
Site1 10 4 trt1
Site1 11 4 trt2
Site1 12 4 trt3
. . . .
. . . .
. . . .
Site4 12 4 trt1

我希望能够以一种方式将这些分配返回到数据框中,这样我就不必手动移动任何东西。我仍然是编程的新手,不知道如何实现这一点。

谢谢!

最佳答案

我会这样做:

library(dplyr) 
data %>%
arrange(runif(n())) %>% # randomize the order
group_by(Site, Replicate, Treatment) %>% # group
mutate(
Treat_2 = case_when(
Treatment == "trt2" ~ "y", # trt2 gets 'y'
row_number() <= n() / 2 ~ "y", # others in the first half get "y"
TRUE ~ "n" # others in the second half get "n"
)) %>%
arrange(Site, Replicate, `Experimental unit`) ## return to original order

关于随机分配治疗组的一半,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61599917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com