It looks like you are trying to construct a ragged array, where the extent of 
the dimensions varies.

However, in R, ordinary arrays have a regular structure, e.g., the rows of a 
matrix always have the same number of columns.  This is the kind of object 
abind() constructs.

So, to bind your two matrices together, abind() requires that their dimensions 
match

a <- matrix(1:6, ncol=3, byrow=T)
b <- matrix(7:10, ncol=2, byrow=T)
a
    [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
b
    [,1] [,2]
[1,]    7    8
[2,]    9   10
library(abind)
abind(a, b, along=3)
Error in abind(a, b, along = 3) : arg 'X2' has dims=2, 2, 1; but need dims=2, 3, X

The only way to get abind to bind these together on the third dimension is to 
pad out the smaller matrix with NA's, e.g.:

abind(a, cbind(b, NA), along=3)
, , 1

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

, , 2

    [,1] [,2] [,3]
[1,]    7    8   NA
[2,]    9   10   NA



('a' and 'b' do match on the number of rows, so you can bind them together as 
columns as does cbind(), e.g.:
abind(a, b, along=2)
    [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    7    8
[2,]    4    5    6    9   10

)


If none of this is what you want, you could consider storing the matrices in a 
list, as another poster suggested.

-- Tony Plate


Suyan Tian wrote:
I am trying to combine two arrays with different dimensions into one. For example

The first one is
1  2  3
4  5  6

The second one is
7 8
9 10

The resulted one would be like
, , 1
1 2 3
4 5 6
, , 2
7 8
9 10

I used abind to do this, but failed. Could somebody please let me know how to do this in R? Thanks so many.


Suyan

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to