0

如果我有一个矩阵说:

> mat1=matrix(1:12, ncol=3)
> mat1
     [,1] [,2] [,3]
[1,]    1    5    9
[2,]    2    6   10
[3,]    3    7   11
[4,]    4    8   12

我该怎么做才能复制每一列并将其放在原始列旁边,使其看起来像这样:

     [,1] [,2] [,3] [,4] [,5] [,6]
[1,]    1    1    5    5    9    9    
[2,]    2    2    6    6   10   10
[3,]    3    3    7    7   11   11
[4,]    4    4    8    8   12   12

我敢肯定这真的很简单,但看不到!非常感谢。

4

2 回答 2

2

试试这个:

mat1=matrix(1:12, ncol=3)
mat1[,rep(1:ncol(mat1),each=2)]
##      [,1] [,2] [,3] [,4] [,5] [,6]
## [1,]    1    1    5    5    9    9
## [2,]    2    2    6    6   10   10
## [3,]    3    3    7    7   11   11
## [4,]    4    4    8    8   12   12
于 2014-04-09T16:54:54.500 回答
0

重新订购一个简单的 cbind 可能最容易:

cbind(mat, mat)[,order(rep(1:ncol(mat), times=2))]

或者

mat[,rep(1:ncol(mat), each=2)]
于 2014-04-09T16:50:35.613 回答