try this: > a [[1]] [1] "a" "b" "c" [[2]] [1] "d" "e" [[3]] [1] "f" "g" "h" "i" > # find max row length > rowMax <- max(sapply(a, length)) > # now create output matrix by lengthening rows > do.call(rbind, lapply(a, function(x){ + length(x) <- rowMax + x + })) [,1] [,2] [,3] [,4] [1,] "a" "b" "c" NA [2,] "d" "e" NA NA [3,] "f" "g" "h" "i" >
On Mon, Jun 22, 2009 at 7:15 PM, Kenneth Takagi <kat...@psu.edu> wrote: > Hi, > > > > I have a list made up of character strings with each item a different > length (each item is between 1and 6 strings long). Is there a way to > convert a "ragged" list to a matrix such that each item is its own row? > Here is a simple example: > > > > a=list(); > > a[[1]] = c("a", "b", "c"); > > a[[2]] = c("d", "e"); > > a[[3]] = c("f", "g", "h", "i"); > > > > I would like to convert the list to a matrix (or data frame) in this > form, with the "missing" entries "NA" or something similar: > > > > [,1] [,2] [,3] [,4] > > [1,] "a" "b" "c" "NA" > > [2,] "d" "e" "NA" "NA" > > [3,] "f" "g" "h" "i" > > > > > > Any suggestions? > > > > Thanks! > > > > > > Ken > > kat...@psu.edu > > > > > [[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<http://www.r-project.org/posting-guide.html> > and provide commented, minimal, self-contained, reproducible code. > -- Jim Holtman Cincinnati, OH +1 513 646 9390 What is the problem that you are trying to solve? [[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.