try this:

matLis <- list(matrix(1:4, 2, 2), matrix(1:6, 3, 2),
    matrix(2:1, 1, 2))

n <- max(sapply(matLis, nrow))
do.call(cbind, lapply(matLis, function (x)
    rbind(x, matrix(, n-nrow(x), ncol(x)))))


I hope it helps.

Best,
Dimitris


On 1/6/2011 11:56 AM, emj83 wrote:

Hi,

I have several matrix in a list, for example:
e
[[1]]
      [,1] [,2]
[1,]    1    3
[2,]    2    4

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

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

I would like to join them by column i.e.
      [,1] [,2]   [,3] [,4][,5] [,6]
[1,]    1    3   1    4    2    1
[2,]    2    4   2    5   NA  NA
[3,]   NA  NA  3    6   NA   NA

I have tried  do.call(cbind,e) but I get this error message as the rows are
of different length-
Error in function (..., deparse.level = 1)  :
   number of rows of matrices must match (see arg 2)

Can anyone advise me please?

Thanks Emma



--
Dimitris Rizopoulos
Assistant Professor
Department of Biostatistics
Erasmus University Medical Center

Address: PO Box 2040, 3000 CA Rotterdam, the Netherlands
Tel: +31/(0)10/7043478
Fax: +31/(0)10/7043014
Web: http://www.erasmusmc.nl/biostatistiek/

______________________________________________
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