# [R] list to data frame by rows ...

Johann Petrak johann at ai.univie.ac.at
Tue May 15 15:10:00 CEST 2001

```Thanks to all who helped on this!
Of course I messed up even my first help question on R and
>From list(c(1,2,3),c(4,5,6)) I wanted a data frame with
1 1 2 3
2 4 5 6

This is more interesting than what I actually asked, since
data frames are organized as lists of columns anyway,
so the efficient re-organization from a list of rows
is the point.
Naivly adapting Douglas' proposal seems to work:
data.frame(do.call("rbind",list(c(1,2,3),c(4,5,6))))
X1 X2 X3
1  1  2  3
2  4  5  6
With lots of data, probably not very efficient?

So ... the reason why I want to do this in the first place
is probably wrong R style:
I have a list of data frames (the result of a split operation).
For each member in the list, I want to calculate a couple of
values using a single function that takes the member as an argument
and returns a list(vector) of values:
splitted <- (df, df[])
myfun <- function (x) { calc all kinds of stuf from x, return c(...) }
res <- lapply(splitted,myfun)
# this gives me a list of rows

So is there a mapping operation that directly builds up a list
of columns? Or would the R programmer solve this completely
differently?
(I cannot use different functions for each result column, since
they have to share code.)

Maybe doing an iterative append through vec<-c(vec,el)?
How efficient would this be?
Is this different from vec<-append(vec,el) ?

Related to this:
How would I append single rows  to an existing dataframe in an efficient
and elegant manner? How all the rows from another dataframe?

Johann
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._

```