Converting a list to a data frame
On Wed, May 2, 2018 at 11:53 AM, Jeff Newmiller
<jdnewmil at dcn.davis.ca.us> wrote:
Another approach:
########
library(tidyr)
L <- list( A = data.frame( x=1:2, y=3:4 )
, B = data.frame( x=5:6, y=7:8 )
)
D <- data.frame( Type = names( L )
, stringsAsFactors = FALSE
)
D$data <- L
unnest(D, data)
#> Type x y
#> 1 A 1 3
#> 2 A 2 4
#> 3 B 5 7
#> 4 B 6 8
########
I think a slightly more idiomatic tidyverse solution is dplyr::bind_rows() l <- list( A = data.frame(x = 1:2, y = 3:4), B = data.frame(x = 5:6, y = 7:8) ) dplyr::bind_rows(l, .id = "type") #> type x y #> 1 A 1 3 #> 2 A 2 4 #> 3 B 5 7 #> 4 B 6 8 This also has the advantage of returning a data frame when the inputs are data frames. Hadley