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

michael watson (IAH-C) michael.watson at bbsrc.ac.uk
Thu Feb 17 15:36:43 CET 2005


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

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




More information about the R-help mailing list