On 05/03/2018 07:58 AM, Jeff Newmiller wrote:
This is very nice to learn about, Denis, but it seems only fair to point out
that the result of rbindlist is not a data frame. You can convert it to a data
frame easily, but the copy and indexing semantics of data tables are quite
different than data tables, which could be a real headache for someone not
prepared for those differences. (To learn more, read the data tables vignette.)
Tibbles (as produced by unnest in my previous response) are not data tables
either, but they behave much more like data frames than data tables do.
On May 2, 2018 1:30:37 PM MDT, "Tóth Dénes" <toth.de...@kogentum.hu> wrote:
On 05/02/2018 07:11 PM, Kevin E. Thorpe wrote:
I suspect this is pretty easy, but I'm having trouble figuring it
out.
Basically, I have a list of data frames such as the following
example:
list(A=data.frame(x=1:2, y=3:4),B=data.frame(x=5:6,y=7:8))
I would like to turn this into data frame where the list elements
are
essentially rbind'ed together and the element name becomes a new
variable. For example, I would like to turn the list above into a
data
frame that looks like this:
data.frame(type=c("A","A","B","B"),x=c(1:2,5:6),y=c(3:4,7:8))
Appreciate any pointers.
Hi Kevin,
data.table::rbindlist does exactly what you want in a very efficient
way:
library(data.table)
dat <- list(A=data.frame(x=1:2, y=3:4),B=data.frame(x=5:6,y=7:8))
rbindlist(dat, idcol = "type")
In response to Jeff's note, this a solution which results in a
data.frame instead of a data.table:
library(data.table)
dat <- list(A=data.frame(x=1:2, y=3:4),B=data.frame(x=5:6,y=7:8))
dat <- rbindlist(dat, idcol = "type")
# traditional way
dat_df <- as.data.frame(dat)
# no copy (assignment not needed, memory-efficient)
setDF(dat)
Further amendments would be needed to transform the 'type' variable to a
factor, if it is required.
Regards,
Denes
Kevin
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.