[R] Odp: converting a list to a data.frame

Petr PIKAL petr.pikal at precheza.cz
Tue Apr 3 12:36:53 CEST 2007


Hi

do.call("cbind", your.list) # or rbind

gives you rectangular matrix, however shorter items in list are recycled 
as necessary. Problem is that you need to specify how shall be shorter 
items  handeled as it is not obvious. One possibility could be add NAs to 
positions where you want them, what is not so simple. But maybe somebody 
can give more elegant solution.

Regards

Petr
petr.pikal at precheza.cz

r-help-bounces at stat.math.ethz.ch napsal dne 03.04.2007 11:28:27:

> Hello,
> 
> I have a list with n numerical components of different length (3, 4 or 5
> values in each component of the list); I need to export this as a text
> file where each component of the list will be a row and where missing
> values should fill in the blanks due to the different lengths of the
> components of the list.
> I think that as a first step I should convert my list to a data frame,
> but this is not such a simple task to accomplish: I was thinking of the
> following "for" loop:
> 
> X<-data.frame(1,1,1,1,1);
> 
> for (i in 1:length(list)) {
> 
>     X[i,]<-unlist(list[[i]]);
> 
> }
> 
> Unfortunately, when the number of elements in the components of the list
> are lower than 5 (maximum), I get errors or undesired results. I also
> tried with rbind(), but again I couldn't manage to make it accept rows
> of different length.
> 
> Does anybody have any suggestions? Working with lists is very nice, but
> I still have to learn how to transfer them to text files for external
> use.
> 
> Thnak you,
> 
> Filippo Biscarini
> Wageningen University 
> 
>    [[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at 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.



More information about the R-help mailing list