【问题标题】:Randomized complete block design随机完全区组设计
【发布时间】:2021-03-18 14:26:59
【问题描述】:

我正在尝试在 R 中进行 3 次重新排列的“随机完整块设计”。 我正在做一个盆栽实验,有 9 个处理(3 个肥料和 3 个农药处理相结合),每个处理 6 个重复,因此我选择了 6 个块。在块内,每个布置允许进行一次处理,并且每个单独的盆只允许在所有布置的块内发生一次。 例如:C_p+Min_1 第一次可以在block 1,但之后不能再返回block 1。同时,此处理的其他重复 (C_p+Min_2 - C_p+Min_6) 不能与C_p+Min_1 在同一块中。 我的块设计是 6 x 9 栅格,其中块是正方形中的 3x3 栅格:

我做了什么:

library(agricolae)
pesticide <- factor(rep(c("C_p", "Bio", "Syn"), each = 3))
fertilizer <- factor(rep(c("C_f", "Org", "Min"), times = 3))

treatments <- data.frame(fertilizer, pesticide)
treatments_combined <- paste(treatments$fertilizer, "+", treatments$pesticide)

design.rcbd(trt=treatments_combined, r=6, randomization = TRUE, first=TRUE)$sketch

这会导致:

      [,1]        [,2]        [,3]        [,4]        [,5]        [,6]        [,7]        [,8]        [,9]       
[1,] "Org + C_p" "Org + Syn" "C_f + Syn" "Min + Syn" "C_f + Bio" "Min + C_p" "Org + Bio" "Min + Bio" "C_f + C_p"
[2,] "Min + Bio" "Min + Syn" "Min + C_p" "C_f + Bio" "Org + Syn" "C_f + C_p" "Org + C_p" "C_f + Syn" "Org + Bio"
[3,] "Org + Syn" "C_f + Bio" "C_f + Syn" "Org + Bio" "Org + C_p" "Min + C_p" "C_f + C_p" "Min + Syn" "Min + Bio"
[4,] "C_f + Bio" "Min + Bio" "Org + C_p" "C_f + C_p" "C_f + Syn" "Min + Syn" "Min + C_p" "Org + Bio" "Org + Syn"
[5,] "Org + C_p" "Org + Bio" "C_f + C_p" "C_f + Syn" "C_f + Bio" "Min + Bio" "Min + C_p" "Min + Syn" "Org + Syn"
[6,] "C_f + Syn" "C_f + C_p" "Min + Bio" "Org + Syn" "Org + Bio" "Min + C_p" "Org + C_p" "C_f + Bio" "Min + Syn"

所以我得到了我想要的一次。 现在我想重新排列它们 3 次。我该怎么做才能满足我上面的规范?

【问题讨论】:

    标签: r random data-science


    【解决方案1】:

    我相信,如果您只是重新运行design.rcbd() 函数,您将获得新的随机化。 (该函数有一个seed 参数,如果您出于某种原因想要修复随机化以重复获得相同的结果。)

    set.seed(101)  ## for replicability in the future
    designs <- replicate(4, simplify=FALSE,
         design.rcbd(trt=treatments_combined, r=6, 
                     randomization = TRUE, first=TRUE)$sketch)
    

    这将为您提供四个“草图”的列表,您可以将其检索为 designs[[1]]designs[[2]] 等。

    或者,您可以通过省略 $sketch 来保存整个设计:

    designs <- replicate(4, simplify=FALSE,
         design.rcbd(trt=treatments_combined, r=6, 
                     randomization = TRUE, first=TRUE))
    

    现在使用designs[[1]]$sketch 获取设计1 的设计草图,并使用designs[[1]]$book 获取“外业手册”,我认为这是您想要的关于单个花盆的详细信息...

      plots block treatments_combined
    1    101     1           C_f + C_p
    2    102     1           Org + C_p
    3    103     1           Min + C_p
    ...
    

    一种提取特定治疗组合信息的方法:

    b <- designs[[1]]$book
    dplyr::filter(b, treatments_combined == "Min + C_p")
      plots block treatments_combined
    1   103     1           Min + C_p
    2   207     2           Min + C_p
    3   303     3           Min + C_p
    4   404     4           Min + C_p
    5   503     5           Min + C_p
    6   608     6           Min + C_p
    > 
    

    【讨论】:

    • 非常感谢您的快速答复。这看起来很棒。有没有办法枚举所有的罐子?我需要能够将它们区分开来,因为我会在一段时间后将花盆物理移动到它们的新位置。对于每种治疗,例如“C_p+Min”有 6 个重复。所以从 C_p+Min_1 到 C_p+Min_6 我需要知道哪个去哪里。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 2013-04-03
    • 2012-04-08
    • 2019-12-20
    • 1970-01-01
    • 2021-04-04
    • 2017-05-18
    相关资源
    最近更新 更多