#r #random #data-science
Вопрос:
Я пытаюсь выполнить «рандомизированный полный дизайн блока» с 3 перестановками в R. Я провожу эксперимент с 9 обработками (3 обработки удобрениями и 3 обработками пестицидами объединены) и 6 повторениями каждой, поэтому я выбрал 6 блоков. В пределах блока обработка допускается один раз для каждой договоренности, и каждому отдельному горшку разрешается проходить только один раз в пределах блока по всем договоренностям. Например: C_p Min_1
может быть в блоке 1 в первый раз, но впоследствии не может вернуться в блок 1 снова. В то же время никакая другая копия этого лечения ( C_p Min_2
— C_p Min_6
) не может находиться в том же блоке, C_p Min_1
что и . Мой дизайн блока представляет собой растр размером 6 х 9, где блок представляет собой растр размером 3 х 3 в квадрате:
Что я сделал:
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 раза. Как я могу это сделать, чтобы мои требования сверху были выполнены?
Ответ №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
>
Комментарии:
1. Большое спасибо за ваш быстрый ответ. Это выглядит великолепно. Есть ли способ перечислить все банки? Мне нужно уметь отличать их друг от друга, так как через определенное время я буду физически перемещать горшки в их новое положение. Для каждой обработки, например «C_p Min», существует 6 повторов. Итак, от C_p Min_1 до C_p Min_6, и мне нужно знать, что куда идет. Спасибо!