Skip to content

Flattening a list of data frames

2 messages · Lorin Hochstein, Dimitris Rizopoulos

#
Hello all,

Simple version of my problem:

I've got a list of data frames, where each data frame has the same 
number of columns and the same column names. I'd like to flatten the 
list into one large data frame. Is there an easy way to do this?

Quick example code:
a <- data.frame(x=c(1,2,3),y=c(5,7,9)
b <- data.frame(x=c(2,4,7,9),y=c(2,3,5,4))
z <- list(a,b)

# Do "something" to get the equivalent of  rbind(z[[1]],z[[2]])
???

More complex version:

My data is in this format because it's the output of a "by" statment 
that looks like this:

y <- by(d,list(d$StudentID,d$Assignment),gapfun)

(where gapfun is a function I've defined that takes a data frame and 
returns another data frame).

What I would like is to do is transform y into a data frame that has 
columns "StudentID", "Assignment", and the columns in the data frame 
returned by gapfun.

Any ideas?

Lorin

----------
Lorin Hochstein
Graduate Research Assistant
Experimental Software Engineering Group
Computer Science Department
University of Maryland, College Park
#
try this:

do.call("rbind", z)

Best,
Dimitris

----
Dimitris Rizopoulos
Ph.D. Student
Biostatistical Centre
School of Public Health
Catholic University of Leuven

Address: Kapucijnenvoer 35, Leuven, Belgium
Tel: +32/16/336899
Fax: +32/16/337015
Web: http://www.med.kuleuven.ac.be/biostat/
     http://www.student.kuleuven.ac.be/~m0390867/dimitris.htm


----- Original Message ----- 
From: "Lorin Hochstein" <lorin at cs.umd.edu>
To: <R-help at stat.math.ethz.ch>
Sent: Wednesday, March 09, 2005 9:07 PM
Subject: [R] Flattening a list of data frames