Here's one way:

uselen = max(sapply(listObj,length))
do.call(rbind,lapply(listObj,function(x){length(x) = uselen;x}))
           [,1]      [,2]       [,3]       [,4]      [,5]
[1,]  0.0702225 -1.143031  1.6437560         NA        NA
[2,] -0.6100869  2.657910 -0.6028418 -0.7739858        NA
[3,] -2.5787357  1.381395 -1.6545857  0.8239982 -1.169961

                                        - Phil Spector
                                         Statistical Computing Facility
                                         Department of Statistics
                                         UC Berkeley
                                         spec...@stat.berkeley.edu



On Wed, 27 Apr 2011, Bogaso Christofer wrote:

Dear all, let say, I have following list object:



listObj <- vector("list", length = 3)

listObj[[1]] <- rnorm(3)

listObj[[2]] <- rnorm(4)

listObj[[3]] <- rnorm(5)



Now I want to convert above list into a Matrix. Ofcourse I can do it using
"Reduce("rbind", listObj)". However as you notice that as elements of that
list are arbitrary length vectors, I cant use this trick. What I want is to
have a matrix with 3x5 dimension, where the remaining element of each row
with be filled with NA, i.e I want :



rbind(c(listObj[[1]], c(NA, NA)), c(listObj[[2]], c(NA)),listObj[[3]])



Is there any better way on how I can do that more directly?



Thanks and regards,


        [[alternative HTML version deleted]]

______________________________________________
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