[R] Named list of data.frames to data.frame with names
arun
smartpink111 at yahoo.com
Tue Oct 30 19:21:05 CET 2012
Hi,
You can also try this:
res<-do.call(rbind,lapply(l,function(x) data.frame(Name=names(l)[match.call()[[2]][[3]]],x)))
row.names(res)<-1:nrow(res)
head(res)
# Name x y
#1 A -0.7326214 -0.8871683
#2 A 0.4761960 0.8245219
#3 A 0.2362935 -0.1427997
#4 A 1.1684286 -0.3849312
#5 A -0.5440966 -0.8001079
#6 B 0.3652238 -0.9604054
A.K.
----- Original Message -----
From: Mark Payne <markpayneatwork at gmail.com>
To: r-help at r-project.org
Cc:
Sent: Tuesday, October 30, 2012 4:16 AM
Subject: [R] 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
______________________________________________
R-help at r-project.org 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