首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的实验设计表

R中的实验设计表
EN

Stack Overflow用户
提问于 2014-02-28 17:33:17
回答 3查看 345关注 0票数 0

如何在R中生成下列实验设计表?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-02-28 18:09:35

您可以使用与连续整数的二进制表示相关联的一个很好的技巧(我假设您不希望只生成带有零的行):

代码语言:javascript
复制
n <- 4
M <- matrix(NA_integer_, nrow=2^n-1, ncol=n)
for (i in 1:(2^n-1))
   M[i, ] <- as.integer(intToBits(i)[1:n])
print(M)

这给了n==4

代码语言:javascript
复制
      [,1] [,2] [,3] [,4]
 [1,]    1    0    0    0
 [2,]    0    1    0    0
 [3,]    1    1    0    0
 [4,]    0    0    1    0
 [5,]    1    0    1    0
 [6,]    0    1    1    0
 [7,]    1    1    1    0
 [8,]    0    0    0    1
 [9,]    1    0    0    1
[10,]    0    1    0    1
[11,]    1    1    0    1
[12,]    0    0    1    1
[13,]    1    0    1    1
[14,]    0    1    1    1
[15,]    1    1    1    1
票数 0
EN

Stack Overflow用户

发布于 2014-02-28 18:18:32

看起来你想要所有的组合,除了0 0 0。

代码语言:javascript
复制
> # create all combinations of 4 0s/1s
> design <- expand.grid(0:1, 0:1, 0:1, 0:1)
> design
   Var1 Var2 Var3 Var4
1     0    0    0    0
2     1    0    0    0
3     0    1    0    0
4     1    1    0    0
5     0    0    1    0
6     1    0    1    0
7     0    1    1    0
8     1    1    1    0
9     0    0    0    1
10    1    0    0    1
11    0    1    0    1
12    1    1    0    1
13    0    0    1    1
14    1    0    1    1
15    0    1    1    1
16    1    1    1    1
> # remove the single run you don't want
> design[-1,]
   Var1 Var2 Var3 Var4
2     1    0    0    0
3     0    1    0    0
4     1    1    0    0
5     0    0    1    0
6     1    0    1    0
7     0    1    1    0
8     1    1    1    0
9     0    0    0    1
10    1    0    0    1
11    0    1    0    1
12    1    1    0    1
13    0    0    1    1
14    1    0    1    1
15    0    1    1    1
16    1    1    1    1
票数 2
EN

Stack Overflow用户

发布于 2014-02-28 19:10:11

如果要分析R中的阶乘设计,最好使用许多DoE包之一。例如,DoE.base包有一个函数,fac.design(...),它本质上做您想做的事情:

代码语言:javascript
复制
library(DoE.base)
df <- fac.design(nlevels=2,nfactors=4,randomize=F, 
                 factor.names=list(0:1,0:1,0:1,0:1))

正如在另一个答案中指出的,您的设计是一个完整的阶乘,只不过它缺少两个组合(这让我怀疑它是否是一个阶乘设计.)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22101986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档