在R中的数组中组合具有不同维度的矩阵

时间:2014-03-17 13:23:03

标签: arrays r matrix multidimensional-array

我想知道是否有办法将两个不同维度的矩阵组合成一个数组。我知道有函数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

2 个答案:

答案 0 :(得分:0)

您可以尝试将矩阵视为一个dimmensional数组,从技术上讲它们就是这样。 如果你看一个3X3的矩阵'a',你试图访问[2] [1],例如它等于[2 * 3 + 1]。您可以使用它来遍历矩阵并将它们组合起来。

答案 1 :(得分:-1)

d=list(a,b)

我希望这就是你想要的 就是这样