[R] Converting a list to a data frame

Tóth Dénes toth@dene@ @end|ng |rom kogentum@hu
Wed May 2 21:30:37 CEST 2018



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")

Regards,
Denes


> 
> Kevin
>




More information about the R-help mailing list