1

我有 2 个大小完全相同的矩阵(100 X 500)。我想在不丢失任何信息的情况下将它们合并到 1 个相同大小 (100 X 500) 的矩阵中。我不知道如何表达这一点,但这就是我的想法。

Matrix A
   A        B        C      D     ...
   E        F        G      H     ...
   .
   .
   .

Matrix B
   1        2        3      4     ...
   5        6        7      8     ...
   .
   .

我期待的结果是这样的

Matrix C
   A-1        B-2        C-3      D-4     ...
   E-5        F-6        G-7      H-8     ...
   .
   .

有什么功能可以做到这一点??这应该是一些基本命令,但是我以前从未遇到过这个问题。谢谢,

4

2 回答 2

6

您可以paste在矩阵上使用:

m1 <- matrix(LETTERS[1:24],nrow=6,ncol=4)
m2 <- matrix(1:24,nrow=6,ncol=4)
matrix(paste(m1,m2,sep="-"),nrow=nrow(m1),ncol=ncol(m1))

这将给出:

     [,1]  [,2]   [,3]   [,4]  
[1,] "A-1" "G-7"  "M-13" "S-19"
[2,] "B-2" "H-8"  "N-14" "T-20"
[3,] "C-3" "I-9"  "O-15" "U-21"
[4,] "D-4" "J-10" "P-16" "V-22"
[5,] "E-5" "K-11" "Q-17" "W-23"
[6,] "F-6" "L-12" "R-18" "X-24"

paste返回向量而不是矩阵,这就是为什么您必须通过指定其维度将结果转换回矩阵的原因。

于 2013-04-08T13:57:51.033 回答
2

另一种选择是在interaction这里使用

    matrix(interaction(m1,m2,sep='-'),nrow=nrow(m1),ncol=ncol(m1))
     [,1]  [,2]   [,3]   [,4]  
[1,] "A-1" "G-7"  "M-13" "S-19"
[2,] "B-2" "H-8"  "N-14" "T-20"
[3,] "C-3" "I-9"  "O-15" "U-21"
[4,] "D-4" "J-10" "P-16" "V-22"
[5,] "E-5" "K-11" "Q-17" "W-23"
[6,] "F-6" "L-12" "R-18" "X-24"
于 2013-04-08T14:29:42.340 回答