首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用R语言编程实现实验设计的关联矩阵

用R语言编程实现实验设计的关联矩阵
EN

Stack Overflow用户
提问于 2012-12-06 12:13:41
回答 1查看 1.4K关注 0票数 2

我正在做一项教育作业,用R语言软件从一个围巾设计中产生一个关联矩阵。我发现了一个与问题相关的网页http://wiki.math.yorku.ca/index.php/R:_Incidence_matrix。但它产生的是数据矩阵,而不是关联矩阵。有没有人可以帮我解决R语言代码。获得箱体设计矩阵的代码为:

代码语言:javascript
复制
b=4                                  # Number of Blocks  
t=8                                  # Number of Column
z=c(1,2,3)                           # Shift
m=NULL
y=c(0)
w=c(y,cumsum(z) %%t)                 # cumsum() is for the running totals
p=seq(from=0, to=t-1, by=1)
l=NULL

for(i in 1:b)  
 {
     for(j in 1:t) 
        {
            l=c(l,rep((w[i]+p[j]+t)%% t))
         }
  }
#"BIB design" it has 4 rows (blocks b) and 8 column (treatments t)
x= matrix(c(l),nrow=b,ncol=t,byrow = TRUE)  
 print (x)

0    1    2    3    4    5    6    7   
1    2    3    4    5    6    7    0   
3    4    5    6    7    0    1    2    
6    7    0    1    2    3    4    5   

(它通常可以以任何t-处理和b-块大小产生)使用上述设计矩阵x (4*8)。我需要下面的关联矩阵(8*8)

代码语言:javascript
复制
1   1   0   1    0    0   1    0       
0   1   1   0    1    0   0    1        
1   0   1   1    0    1   0    0     
0   1   0   1    1    0   1    0       
0   0   1   0    1    1   0    1       
0   1   0   0    1    0   1    1   
1   0   1   0    0    1   0    1    

按列考虑设计矩阵,按行生成关联矩阵。例如,x的第一列是

代码语言:javascript
复制
0   
1    
6    
3   

现在查看所需关联矩阵(IM)的第一行。

代码语言:javascript
复制
1   1   0   1    0    0   1    0     

在x的第一位是0,所以把1放在IM的第一位。

在x的第二位是1,所以在IM的第二位也是1。

这里x的列缺少2,所以把0放在IM的第三位。

X包含3,因此将1放在第4位,4和5缺少在一行中放置两个0。

X在第7位有6个put 1,在IM的第8位有7个缺少put 0。

取x的第二列和IM的类似填充的第二行。如果存在特定的数字(0到7),则放入1或0。

我希望,我现在对每个人都说得很清楚。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-06 15:42:55

为了使x矩阵不同于在一列中有两个相同的项,我得到了这个逻辑:

代码语言:javascript
复制
x[4,1] <- 1
t( apply(x, 2, function(z){ ret <- numeric(8)
                            for( i in seq_along(z) ){ret[z[i]+1] <- ret[z[i]+1]+ 1}
                            ret}) )

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,]    1    2    0    1    0    0    0    0
[2,]    0    1    1    0    1    0    0    1
[3,]    1    0    1    1    0    1    0    0
[4,]    0    1    0    1    1    0    1    0
[5,]    0    0    1    0    1    1    0    1
[6,]    1    0    0    1    0    1    1    0
[7,]    0    1    0    0    1    0    1    1
[8,]    1    0    1    0    0    1    0    1
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13736847

复制
相关文章

相似问题

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