回复 第6楼 的 201106025:
首先表示歉意,我对ypchen及你均无任何负面意见。而且从回复中ypchen也无此意思表示,他的思路是在解题上。由于很多时候,提问者都不能比较清楚的表述问题,这样回答者可能需要猜测尝试回答,最终的结果很可能被提问者进一步的解释所推翻,所以我称其为'死循环'。
对你的这个问题,不知道是不是要达到以下这样的效果:
[data]
1,1,NA,NA,NA,NA
1,1,NA,NA,NA,NA
NA,NA,2,2,NA,NA
NA,NA,NA,NA,3,3
[/data]
一段小代码,可能比较简单,因为对矩阵的这种类型操作不是经常用到:
<br />
> a <- matrix(data=c(1,1),nrow=1,ncol=2)<br />
> b <- matrix(data=c(2,2),nrow=1,ncol=2)<br />
> c <- matrix(data=c(3,3),nrow=1,ncol=2)<br />
> a;b;c<br />
[,1] [,2]<br />
[1,] 1 1<br />
[,1] [,2]<br />
[1,] 2 2<br />
[,1] [,2]<br />
[1,] 3 3<br />
> diag(c(a,b,c),6,6)<br />
[,1] [,2] [,3] [,4] [,5] [,6]<br />
[1,] 1 0 0 0 0 0<br />
[2,] 0 1 0 0 0 0<br />
[3,] 0 0 2 0 0 0<br />
[4,] 0 0 0 2 0 0<br />
[5,] 0 0 0 0 3 0<br />
[6,] 0 0 0 0 0 3<br />
</p>
下面是把上述变量a,b,c三个矩阵进行对角排列:
<br />
library('Matrix')<br />
a <- matrix(data=c(1:4),nrow=2,ncol=2)<br />
b <- matrix(data=c(5:8),nrow=2,ncol=2)<br />
c <- matrix(data=c(9:12),nrow=2,ncol=2)<br />
bdiag(a,b,c)<br />
6 x 6 sparse Matrix of class "dgCMatrix"</p>
<p>[1,] 1 3 . . . .<br />
[2,] 2 4 . . . .<br />
[3,] . . 5 7 . .<br />
[4,] . . 6 8 . .<br />
[5,] . . . . 9 11<br />
[6,] . . . . 10 12<br />
</p>
具体参考?bdiag