Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中随机化分割图(和其他经典设计)_R_Experimental Design - Fatal编程技术网

在R中随机化分割图(和其他经典设计)

在R中随机化分割图(和其他经典设计),r,experimental-design,R,Experimental Design,我的问题是,是否有任何R软件包提供了使标准实验设计随机化(可能涉及交叉因素、嵌套和/或阻塞)合理容易的功能 具体而言,请向我具体演示如何对Oats实验进行新的随机化,该实验作为nlme包中的数据集提供 > data(Oats, package="nlme") > summary(Oats) Block Variety nitro yield VI :12 Golden Rain:24 Min. :0.00

我的问题是,是否有任何R软件包提供了使标准实验设计随机化(可能涉及交叉因素、嵌套和/或阻塞)合理容易的功能

具体而言,请向我具体演示如何对
Oats
实验进行新的随机化,该实验作为nlme包中的数据集提供

> data(Oats, package="nlme")
> summary(Oats)
 Block           Variety       nitro          yield      
 VI :12   Golden Rain:24   Min.   :0.00   Min.   : 53.0  
 V  :12   Marvellous :24   1st Qu.:0.15   1st Qu.: 86.0  
 III:12   Victory    :24   Median :0.30   Median :102.5  
 IV :12                    Mean   :0.30   Mean   :104.0  
 II :12                    3rd Qu.:0.45   3rd Qu.:121.2  
 I  :12                    Max.   :0.60   Max.   :174.0 
在那个实验中,有六个区块。每个区块分为三个地块,随机分配给品种(每个地块中每个品种一个地块,每个地块分别随机)。每个地块细分为4个子地块,并随机分配到四个氮量(0、0.2、0.4和0.6),每个地块中每个硝基水平分别随机分配一个子地块。在数据集中,绘图可识别为
品种
的组合。(响应变量为
产量
,因此这实际上不是治疗设计的一部分。)

第二个问题:如果您可以随机化
Oats
,您是否可以使用相同的软件包轻松地随机化其他经典设计,例如三因素CRD、嵌套设计、三周期交叉设计或5x5 Graeco拉丁方

我实际上已经知道如何使用R语言中的基函数来实现这一点;所以我对看到一个程序化的答案并不特别感兴趣。我想知道是否有任何现有的软件包使这变得容易。我可以确定一些可能有帮助的软件包,例如,随机化发生器随机化发生器,但是快速阅读这些软件包的文档仍然不能让我清楚地知道如何做到这一点


几年前,我为我的学生开发了一个通用随机化软件包,我正在尝试决定是否进一步开发它,以便在CRAN上发布。

以下是我如何使用
randomizr

data(Oats, package="nlme")

# get the latest version from github      
install.packages("devtools")
devtools::install_github("DeclareDesign/randomizr")

library(randomizr)
Oats <- within(Oats,{
  Variety_new <- block_ra(block_var = Block, 
                          condition_names = c("Golden Rain", "Marvellous", "Victory"))
  nitro_new <- block_ra(block_var = paste0(Block, Variety_new), 
                        condition_names = c(0, 0.2, 0.4, 0.6))
  })

# Original Random Assignment
with(Oats, table(Block, Variety))
with(Oats, table(Block, nitro))
with(Oats, table(Block, nitro, Variety))

# New Random Assignment
with(Oats, table(Block, Variety_new))
with(Oats, table(Block, nitro_new))
with(Oats, table(Block, nitro_new, Variety_new))

我看到有“接近”的投票,因为这个问题被一些人认为是离题的。我想我本以为这是关于编程的,但我应该把它放在CrossValidated上,对吗?我可以把这个拿下来,然后把它移走。询问代码/包的问题是离题的。这个问题在那里是离题的。对我来说,这似乎是一个编码问题,所以我认为它会在这里讨论,但肯定不会在那里。这看起来很有希望,但当我尝试它时,我得到了
variation\u new
nitro\u new
的所有元素的
(代码中第二组表的计数为零)。我按照规定从github安装,并且软件包版本为0.5.0。--最近的提交肯定破坏了某些东西,因为当我恢复到CRAN(0.4.1)上的提交时,它起了作用。谢谢你的回答,不过有点令人沮丧的是,4个月后才有人站出来理解这个问题。对不起!你可能在更新过程中抓住了我们。现在github上有0.6.0版(CRAN已经接受了这个版本,但是二进制文件需要几天的时间…)没必要道歉!Github既是一种幸事,也是一种祸害——使最新的开发立即可用是一种幸事,使最新的错误立即可用是一种祸害。如果你不介意的话,下面是一个跟进:这是相同的设计,但构造不同。从
des开始这就是你需要的吗?图书馆(随机)des
library(randomizr) 
des <- rev(expand.grid(subplot=1:4, wholeplot=1:3, block=1:6)) 
des <- within(des,{ 
   plot_id <- paste0(block, "_", wholeplot) 
   Variety <- block_and_cluster_ra(
                block_var = block, 
                clust_var = plot_id, 
                condition_names = c("Golden Rain", "Marvellous", "Victory")) 
   nitro <- block_ra(block_var = plot_id, 
                     condition_names = c(0, 0.2, 0.4, 0.6)) 
}) 

with(des, table(Variety, block)) 
with(des, table(Variety, nitro)) 
with(des, table(Variety, nitro, block))