1

まったく同じサイズ (100 X 500) の行列が 2 つあります。情報を失うことなく、それらを同じサイズ (100 X 500) の 1 つのマトリックスにマージしたいと思います。これをどう表現していいのかわかりませんが、私の心にあることは次のとおりです。

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 に答える