首页 > 解决方案 > 在 R 中生成实验设计数据

问题描述

我有一个随机区组设计实验,我们想在其中测试 10 种治疗方法(8 种基因型 + 2 种对照)。

它的结构如下:

9 个站点,每个站点内有 4 个区块(重复),每个区块内有 10 个小区,每个小区内有 144 个给定处理(基因型)的个体。

我想生成如下数据集:

注意:随机分配处理到每个块内的地块。

Site <- LETTERS[1:6]
Block <- LETTERS[1:4] ## For each Site
Plot <- paste(rep("P",10),seq(1,10,1),sep="_") ## For each Block 
Trt <- c(LETTERS[1:8],rep("control",2)) ## 10 Treatments within each block
id <- seq(1,144,1) ## for each Plot
observation <- runif(n=144,min=1, max=4) ## repeated for each treatment, each block,and each site.

data.frame(Site,Block,Plot,Trt,id,observation)

知道这段代码会抛出一个错误,我想对于同一个站点,所有块级别,对于同一个块,所有地块级别及其对应的处理,以及对于同一个地块,所有 id 标签及其相应的观察结果。

非常感谢

标签: rdataframedatasetbioinformaticsexperimental-design

解决方案


我想你可能正在寻找expand.grid

Site <- LETTERS[1:6]
Block <- LETTERS[1:4] ## For each Site
Plot <- paste(rep("P",10),seq(1,10,1),sep="_") ## For each Block 
data <- expand.grid(Site = Site, Block = Block, Plot = Plot)
data$Trt <- sample(c(LETTERS[1:8],paste0("control",1:2)), nrow(data), replace = TRUE)
data

推荐阅读