Dear all, A few months ago, I asked for your help on the following problem:
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. And I got the following answer: library(zoo) z <- do.call(merge, lapply(lst, function(x) zoo(x, names(x)))) rownames(z) <- time(z) coredata(z) However, it does not seem to be working. Here's what I get when I try it: > lst = list(a=c(A=1,B=8) , b=c(A=2,B=3,C=0), c=c(B=2,D=0) ) > library(zoo) > z <- do.call(merge, lapply(lst, function(x) zoo(x, names(x)))) Error in if (freq > 1 && identical(all.equal(freq, round(freq)), TRUE)) freq <- round(freq) : missing value where TRUE/FALSE needed In addition: Warning message: NAs introduced by coercion and z was not created. Any ideas on what is going on here? Thank you, Dimitri ______________________________________________ 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.