【问题标题】:Duplicate matrix columns and put next to original in R复制矩阵列并放在R中的原始列旁边
【发布时间】:2014-04-09 16:38:54
【问题描述】:

如果我有一个矩阵说:

> 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

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

【问题讨论】:

  • 查看我的Riffle function。这个问题有点矫枉过正,但仍然很有趣:-)

标签: r matrix replicate


【解决方案1】:

试试这个:

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

【讨论】:

    【解决方案2】:

    重新排序一个简单的 cbind 可能最容易:

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

    mat[,rep(1:ncol(mat), each=2)]
    

    【讨论】:

      猜你喜欢
      • 2022-01-03
      • 2015-05-03
      • 1970-01-01
      • 2019-01-27
      • 2012-12-26
      • 2017-08-06
      • 1970-01-01
      • 2019-07-19
      • 1970-01-01
      相关资源
      最近更新 更多