On Fri, 2006-08-18 at 16:44 -0400, Rajarshi Guha wrote:
> Hi, I have a situation where I have a list of lists. Each list can
> contain elements of different types (but each one will be a scalar) say
> of double, integer or character.
> 
> However the elements of each list are always in the same order:
> 
> x <- list('a', 1, 2)
> y <- list('b', 3, 4)
> z <- list('c', 5, 6)
> 
> a <- list(x,y,z)
> 
> What I'd like to do is to convert a to a data.frame.
> 
> Currently I am doing:
> 
> b <- do.call(rbind, a)
> 
> However, when I do b[,1] I get a list returned rather than a vector of
> characters and similarly for b[,2] and so on.
> 
> I am clearly missing something, but how do I convert the list of lists
> to a data.frame where a column is represented as a vector rather than a
> list?
> 
> Thanks,

How about:

> as.data.frame(sapply(a, rbind))
  V1 V2 V3
1  a  b  c
2  1  3  5
3  2  4  6

or:

> as.data.frame(t(sapply(a, rbind)))
  V1 V2 V3
1  a  1  2
2  b  3  4
3  c  5  6


depending upon how you wanted the columns versus rows to be structured.

HTH,

Marc Schwartz

______________________________________________
R-help@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
and provide commented, minimal, self-contained, reproducible code.

Reply via email to