[R] coercing a list into matrix
Steven McKinney
smckinney at bccrc.ca
Wed Jan 14 23:40:21 CET 2009
Hi Ken,
If your lists are not too large something such as this can work:
> matrixFromList <- function(listX) t(sapply(listX, function(x, n) c(x, rep(NA, n))[1:n], n = max(sapply(listX, length))))
> matrixFromList(list(c(3,2,3),c(6,5)))
[,1] [,2] [,3]
[1,] 3 2 3
[2,] 6 5 NA
> A <- list(c(3,2,3), c(1,2,3,4), c(5,6))
> matrixFromList(A)
[,1] [,2] [,3] [,4]
[1,] 3 2 3 NA
[2,] 1 2 3 4
[3,] 5 6 NA NA
> class(matrixFromList(A))
[1] "matrix"
Best
Steven McKinney
Statistician
Molecular Oncology and Breast Cancer Program
British Columbia Cancer Research Centre
email: smckinney +at+ bccrc +dot+ ca
tel: 604-675-8000 x7561
BCCRC
Molecular Oncology
675 West 10th Ave, Floor 4
Vancouver B.C.
V5Z 1L3
Canada
-----Original Message-----
From: r-help-bounces at r-project.org on behalf of Lo, Ken
Sent: Wed 1/14/2009 1:50 PM
To: r-help at r-project.org
Subject: [R] coercing a list into matrix
Dear list,
I have a list of number sequences. Each number sequence has different
numbers of elements. Is there a quick way (other than to iterate
through the entire list) way to coerce list to matrix with NAs filling
in the short sequences?
An example of what I mean is this:
A <- list(c(3,2,3),c(6,5))
I'd like to get A so that it is
3 2 3
6 5 NA
Best,
Ken
______________________________________________
R-help at 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.
More information about the R-help
mailing list