[R] how to collapse a list of 1 column matrix to a matrix?

François Pinard pinard at iro.umontreal.ca
Mon Aug 20 03:33:15 CEST 2007


[adschai at optonline.net]

>I encounter a situation where I have a list whose element is a column 
>matrix. Says,

>$'1'
>[,1]
>1
>2
>3

>$'2'
>[,1]
>4
>5
>6

>Is there fast way to collapse the list into a matrix like a cbind 
>operation in this case? Meaning, the result should be a matrix that 
>looks like: 

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

>I can loop through all elements and do cbind manually. But I think 
>there must be a simpler way that I don't know. Thank you.

The "do.call" function is the R equivalent of the "apply" from many 
other languages.  I guess that, in R, "apply" was already taken :-)
For example:

> a = list(x=matrix(1:3, 3, 1), y=matrix(4:6, 3, 1))
> a
$x
     [,1]
[1,]    1
[2,]    2
[3,]    3

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

> do.call(cbind, a)
     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6


-- 
François Pinard   http://pinard.progiciels-bpi.ca



More information about the R-help mailing list