2014-03-05 44 views
0

什麼是組織/ R中存儲矩陣的最佳方式?假設我有4個矩陣,我想將它們存儲在一起。R中組織基質

a <- matrix(1:4,2,2) 
b <- matrix(5:8,2,2) 

d <- matrix(9:10,2,1) 
e <- matrix(10:11,2,1) 

我想矩陣存儲像

a d 
b e 

 [,1] [,2]  [,1] 
[1,] 1 3 [1,] 9 
[2,] 2 4 [2,] 10 


    [,1] [,2]  [,1] 
[1,] 5 7 [1,] 10 
[2,] 6 8 [2,] 11 
+1

回答這個疑問可能會有點主觀的。什麼是「最好」的方式取決於你打算如何處理數據。你需要以某種方式訪問​​某些部分?您是否需要在以後合併其他數據?您想要與矩陣一起存儲的額外數據的類型是什麼?等等...... – thelatemail

+1

你爲什麼要「把它們放在一起」?將他們分開的理由是什麼?他們真的在計算中一起使用嗎? – smci

回答

2
cbind(rbind(a,b),rbind(d,e)) 

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

如果他們都是一樣大小,你可能會考慮一個array(基本上是一個矩陣具有多個維度)。

如果他們沒有,但很好的分區,然後@ crmhaske的矩陣解決方案是好的。您可能要考慮的另一個選項是定義一個新的S3類並將分區信息存儲爲屬性。

m <- structure(
    cbind(rbind(a,b),rbind(d,e)), 
    locations = list(c(1:2,1:2), c(3:4,1:2), c(1:2,3), c(3:4,3)), 
    class = "myPartitionedMatrix" 
) 

或者只是他們都存儲爲一個列表:

l <- list(a,b,c,d)