Генерация рандомизированных блочных схем c в R - PullRequest
0 голосов
/ 28 января 2020

Я часто проектирую рандомизированные блочные эксперименты, и моим сотрудникам часто нравятся схемы, которые визуализируют эти проекты. Однако на их создание уходит очень много времени, потому что я делаю это в powerpoint (мне стыдно). Я хотел бы сделать это в R, но я действительно не знаю, как начать. Ниже я скопировал, как выглядит одна из этих схем. Что я действительно хотел бы сделать, так это разработать R-код, в котором пользователь может указать:

  1. Некоторое количество обработок в блоке.
  2. Количество блоков.
  3. Вектор цветов, связанных с обработками.

Я бы хотел, чтобы выходные данные были первой панелью на рисунке ниже, не обязательно включая "Блок 1", "Блок 2" и т. Д. c. этикетки. Хотя это было бы бонусом. Хотелось бы, чтобы решение было в базе R.

enter image description here

1 Ответ

1 голос
/ 30 января 2020

Это может быть то, что вы хотите. Я не понимаю, почему каждый блок не может быть просто строкой, как показано на рисунке ниже. Если вам нужны причудливые фигуры, вам нужно указать критерии для рисования этой фигуры для блока.

library(tidyverse)
n_blocks <- 12
m_treatments <- 5

plot_sample_treatments <- function(n_blocks,m_treatments){
  df <- do.call("rbind",
                lapply(1:n_blocks, 
                       function(x) data.frame(
                         treatment = sample(1:m_treatments,m_treatments), 
                         block = paste0('Block ',x), 
                         sequence = (1:m_treatments))))
  df %>% ggplot(aes(x = sequence, y = block, fill = factor(treatment))) + 
        geom_tile(color = 'gray30') + 
        scale_x_discrete(expand = c(0,0))
}

plot_sample_treatments(12,5)

, что дает следующее:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...