在R中生成随机块示意图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在R中生成随机块示意图相关的知识,希望对你有一定的参考价值。

我经常设计随机块实验,而我的合作者经常喜欢将这些设计可视化的示意图。但是,生成它们非常耗时,因为我是在Powerpoint中这样做的(我很ham愧)。我想在R中执行此操作,但是我真的不知道如何入门。下面,我复制了这些示意图之一。我真正想做的是开发R代码,用户可以在其中指定:

  1. 块中有一些治疗方法。
  2. 多个块。
  3. 与治疗相关的颜色向量。

我希望输出为下图的第一面板,而不必包含“块1”,“块2”等标签。虽然,这将是一个奖金。如果解决方案在基数R中,将不胜感激。

enter image description here

答案

这可能是您想要的。我不明白为什么每个块都不能简单地成为一行,如下图所示。如果需要一些奇特的形状,则需要指定用于为块绘制该形状的标准。

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

以上是关于在R中生成随机块示意图的主要内容,如果未能解决你的问题,请参考以下文章

如何在R中生成随机的64位十六进制数?

如何在 Elixir 中生成随机数?

R data.table 在数据表中生成随机配对

在 Lua 中生成统一的随机数

在 Julia 中生成范围内的随机整数

在 R 中生成一些简单的虚拟数据