I want to turn a list of lists into a dataframe where each name(listoflists) is a different column name. It is a VERY big list so I want to do this in the most efficient way possible.
listoflists=list(c(1,2,3,4),c(5,6,7,8))
names(listoflists) <- c("col1", "col2")
What could I do to get the following results:
print(df)
col1 col2
1 5
2 6
3 7
4 8
CodePudding user response:
We can wrap with data.frame
data.frame(listoflists)
-output
col1 col2
1 1 5
2 2 6
3 3 7
4 4 8
In case the OP meant, it as a nested list
, then unlist
the inner list element by looping over the lapply
and wrap with data.frame
data.frame(lapply(listoflists, unlist))
If it should be most efficient way, then setDT
can be applied as well
library(data.table)
setDT(listoflists)
-output
> listoflists
col1 col2
1: 1 5
2: 2 6
3: 3 7
4: 4 8
CodePudding user response:
library(dplyr)
bind_rows(listoflists)
# A tibble: 4 x 2
col1 col2
<dbl> <dbl>
1 1 5
2 2 6
3 3 7
4 4 8