[R] Converting a list to a matrix - I still don't think I have it right

Petr Pikal petr.pikal at precheza.cz
Thu Feb 17 16:28:28 CET 2005


Hi Michael

On 17 Feb 2005 at 14:36, michael watson (IAH-C) wrote:

> Hi
> 
> We have touched on this before, but I don't think I quite got it
> right.
> 
> So I have a list, each element of which is a a vector of 2 numbers:
> 
> > l2
> $cat000_a01
> [1] 0.3429944 4.5138244
> 
> $cat000_a02
> [1] 0.1929336 4.3064944
> 
> $cat000_a03
> [1] -0.2607796  4.1551591
> 
> What I actually want to convert this into is a matrix with the names
> (cat000_a01 etc) as row names, the first element of each of the
> vectors forming the first column of the new matrix, and the second
> element of each of the vectors forming the second column:
> 
> cat000_a01	0.3429944	4.5138244
> cat000_a02	0.1929336	4.3064944
> cat000_a03	-0.2607796  4.1551591
> 
> What was suggested on the list last time was
> matrix(unlist(mylist),nrow=length(mylist)).  But if I do this I get:
> 
> > matrix(unlist(l2),nrow=length(l2))
>           [,1]       [,2]
> [1,] 0.3429944  4.3064944
> [2,] 4.5138244 -0.2607796
> [3,] 0.1929336  4.1551591

Try byrow =TRUE argument

> x<-list(a=c(1,2), b=c(4,5), d= c(10,12))

> matrix(unlist(x),nrow=length(x), byrow=T)
     [,1] [,2]
[1,]    1    2
[2,]    4    5
[3,]   10   12


Cheers 
Petr




> Which is not what I want.  Here, the second element of the first
> vector in my list has gone into the first column of the new matrix,
> and that's not what I want at all.
> 
> Any more help would be appreciated.
> 
> Thanks
> Mick
> 
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html

Petr Pikal
petr.pikal at precheza.cz




More information about the R-help mailing list