2017-04-14 16 views
1

的每個元素的矩陣的每一行。這裏如下
的一個實例:連接具有我想連接的矩陣(假定M1)與另一矩陣(M2)的各要素的各行另一矩陣R

m1 <- t(combn(4,2)) 
m2 <- matrix(NA,nrow(m1),2) 
for(i in 1:nrow(m1)){ 
    m2[i,] <- seq(1,4,1)[-c(m1[i,])] 
    } 
> m1 
    [,1] [,2] 
[1,] 1 2 
[2,] 1 3 
[3,] 1 4 
[4,] 2 3 
[5,] 2 4 
[6,] 3 4 

> m2 
    [,1] [,2] 
[1,] 3 4 
[2,] 2 4 
[3,] 2 3 
[4,] 1 4 
[5,] 1 3 
[6,] 1 2 

,我想應該是這樣的矩陣:

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

什麼是在這種情況下,最好的做法是什麼?

回答

3

按照預期的輸出,邏輯似乎是,我們通過也includng第二數據集擴展第一數據集的行,因此行數應該是雙作爲第一的。在目前的方案中,我們使用rep擴展行,然後cbind從第二matrix

cbind(m1[rep(1:nrow(m1), each = 2),], c(t(m2))) 
#  [,1] [,2] [,3] 
# [1,] 1 2 3 
# [2,] 1 2 4 
# [3,] 1 3 2 
# [4,] 1 3 4 
# [5,] 1 4 2 
# [6,] 1 4 3 
# [7,] 2 3 1 
# [8,] 2 3 4 
# [9,] 2 4 1 
#[10,] 2 4 3 
#[11,] 3 4 1 
#[12,] 3 4 2 
+1

這完美的作品創造了vector即使兩個矩陣有不一樣的列數,每個選項會適應後一個問題。謝謝。 –