Create a zoo object from each component of lst using the names as the "times". Then merge them together using merge.zoo, set the rownames from the times and extract out the data:
library(zoo) z <- do.call(merge, lapply(lst, function(x) zoo(x, names(x)))) rownames(z) <- time(z) coredata(z) On 7/5/06, Dimitri Szerman <[EMAIL PROTECTED]> wrote: > Dear all, > > I have a list with three (named) numeric vectors: > > > lst = list(a=c(A=1,B=8) , b=c(A=2,B=3,C=0), c=c(B=2,D=0) ) > > lst > $a > A B > 1 8 > > $b > A B C > 2 3 0 > > $c > B D > 2 0 > > > Now, I'd love to use this list to create the following data frame: > > > dtf = data.frame(a=c(A=1,B=8,C=NA,D=NA), > + b=c(A=2,B=3,C=0,D=NA), > + c=c(A=NA,B=2,C=NA,D=0) ) > > > dtf > a b c > A 1 2 NA > B 8 3 2 > C NA 0 NA > D NA NA 0 > > That is, I wish to "merge" the three vectors in the list into a data frame > by their "(row)"names. Any suggestions? Thanks in advance for youR-Help. > > Dimitri > > [[alternative HTML version deleted]] > > ______________________________________________ > [email protected] mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html
