[英]matrix of matrices (as a list) in R
假設我有 3 個矩陣C
、 W
和S
C <- matrix(1:3)
W <- matrix(2:4)
S <- matrix(3:5)
我想用這些矩陣作為元素制作一個矩陣。 說矩陣K
,但矩陣的每個元素K
是一個矩陣本身。 就像矩陣列表一樣工作,而是以矩陣形式。 IE:
> K
[,1] [,2] [,3]
[1,] C 0 0
[2,] 0 W S
C
、 W
和S
都是存儲在較大矩陣K
矩陣對象。
最終,我希望能夠使用矩陣乘法,如K %*% K
或類似的。
沒有很多類可以作為 R 矩陣中的元素。 特別是,依賴屬性進行行為的對象不能是保留其基本特征的對象。 具有諷刺意味的是,這包括矩陣本身,因為它們的行為是由維度(維度)屬性控制的。 該排除適用於日期、因素和專用列表,例如數據框。 您可以將列表作為可索引項目包含在矩陣中,但正如@thelatemail 的評論指出的那樣,這會有些笨拙。
> C <- matrix(0, 3,2)
> W <- matrix(1, 4,5)
> S <- matrix(2, 6,7)
> bigM <- matrix( list(), 2, 3)
> bigM[1,1] <- list(C)
> bigM[2,2] <- list(W)
> bigM[2,3] <- list(S)
> bigM
[,1] [,2] [,3]
[1,] Numeric,6 NULL NULL
[2,] NULL Numeric,20 Numeric,42
> bigM[2,3][[1]][42]
[1] 2
請注意,在使用[2,3]
其提取為列表后,需要使用[[1]]
提取矩陣本身。 只有在該附加步驟之后,您才能獲得矩陣中的第 42 項,如果您選擇按row,column
索引引用它,也應該是第[6,7]
項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.