簡體   English   中英

在 R 中的數組中組合不同維度的矩陣

[英]Combining matrices with different dimensions in an array in R

我想知道是否有辦法將兩個不同維度的矩陣組合成一個數組。 我知道有 abind() 函數,但該函數不允許矩陣的不同維度。 我需要這個,因為我使用 JAGS(使用 R2jags 或 rjags)並且這些包不允許數據以列表形式存在。 但是,當我輸入數組時它確實有效。

當我有以下兩個矩陣時:

a <- matrix(0, 3, 2)
b <- matrix(0, 4, 6)
a

     [,1] [,2]
[1,]    0    0
[2,]    0    0
[3,]    0    0

b

     [,1] [,2] [,3]
[1,]    0    0    0
[2,]    0    0    0
[3,]    0    0    0
[4,]    0    0    0

理想情況下,我會這樣:

abind(a,b, along = 3)

, , 1

     [,1] [,2]
[1,]    0    0
[2,]    0    0
[3,]    0    0

, , 2

     [,1] [,2] [,3]
[1,]    0    0    0
[2,]    0    0    0
[3,]    0    0    0
[4,]    0    0    0

您可以嘗試將矩陣視為一維數組,從技術上講,它們確實如此。

例如,如果您查看3X3矩陣'a'並嘗試訪問a[2][1] ,則它等效於a[2*3 + 1] 您可以使用它來遍歷矩陣並將它們組合起來。

d=list(a,b)

我希望這就是你想要的,就像這樣

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM