Wednesday, June 29, 2016

r - Convert a list to a data frame



I have a nested list of data. Its length is 132 and each item is a list of length 20. Is there a quick way to convert this structure into a data frame that has 132 rows and 20 columns of data?



Here is some sample data to work with:




l <- replicate(
132,
list(sample(letters, 20)),
simplify = FALSE
)

Answer



Assuming your list of lists is called l:




df <- data.frame(matrix(unlist(l), nrow=length(l), byrow=T))


The above will convert all character columns to factors, to avoid this you can add a parameter to the data.frame() call:



df <- data.frame(matrix(unlist(l), nrow=132, byrow=T),stringsAsFactors=FALSE)

No comments:

Post a Comment