Converting list to dataframe in R

前端 未结 2 1398
别那么骄傲
别那么骄傲 2021-01-19 14:54

So I have a list, say:

L1 <- list(1:10, 5:14, 10:19)

Now I am trying to get the output of the list as dataframe such that my output look

2条回答
  •  时光说笑
    2021-01-19 15:50

    You can unlist and use matrix, then converting to data.frame. It seems to be faster for this case.

    as.data.frame(matrix(unlist(L1),nrow=length(L1),byrow=TRUE)
    
    microbenchmark::microbenchmark(
    a= map_dfr(L1, ~as.data.frame(t(.x))),
    b= do.call(rbind, lapply(L1, function(x) as.data.frame(t(x)))),
    c= as.data.frame(t(as.data.frame(L1))),
    d= data.table::transpose(as.data.frame(L1)),
    e= as.data.frame(matrix(unlist(L1),nrow=length(L1),byrow=TRUE)),
    times = 100,unit = "relative")
    
    # Unit: relative
    # expr       min        lq      mean    median        uq       max neval
    # a  9.146545  8.548656  8.859087  8.859051  9.449237  7.265274   100
    # b 13.879833 11.523000 11.433790 10.924726 10.797251 24.012107   100
    # c 12.719835 10.635809 10.442108 10.229913 10.259789  7.020377   100
    # d 10.439881  9.143530  9.205734  8.859026  9.176125  6.624454   100
    # e  1.000000  1.000000  1.000000  1.000000  1.000000  1.000000   100
    

提交回复
热议问题