[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:

dat <- list(A=data.frame(x=1:2, y=3:4),B=data.frame(x=5:6,y=7:8))
rbindlist(dat, idcol = "type")


> Kevin

More information about the R-help mailing list