Message-ID: <CAGBzUO9N1Bn_sQw6yS9YCB2FwkUur45KRBgrm5iK0JW2SEdTXQ@mail.gmail.com>
Date: 2012-10-30T08:16:57Z
From: Mark Payne
Subject: Named list of data.frames to data.frame with names
Hi,
I very frequently end up in a situation where I have a named list of
data.frames that I wish to combine. e.g.
l <- list(A=data.frame(x=rnorm(5),
y=rnorm(5)),
B=data.frame(x=rnorm(3),y=rnorm(3)),
C=data.frame(x=rnorm(4),y=rnorm(4)),
D=data.frame(x=rnorm(7),y=rnorm(7)))
I would like to combine these data.frames into a single data.frame,
with the column-names. This is easy with rbind and do.call
l2 <- do.call(rbind,l)
However, I would also like l2 to contain a column containing the names
in the original list? Is there a more elegant way to do this than:
l2 <- do.call(rbind,l)
l2$name <- rep(names(l),times=sapply(l,nrow))
Mark