繁体   English   中英

将大型列表转换为data.frame

[英]Converting a large list into a data.frame

我试图将13,000个元素的列表转换为数据帧,每个元素是一个nr = 230和ncol = 4的zoo对象。

我尝试过setattr(mylist, 'class', 'data.frame') ,但它产生了一个巨大的NA矢量。 我也尝试过plyr包中的quickdf(mylist)函数,但这也不起作用。

do.call(rbind.data.frame, mylist)类型方法非常慢,因此在这种情况下不是一个选项。

有关将此类列表转换为数据帧的最有效方法的任何建议吗?

使用data.table包中的rbindlist。

data <- matrix(data = 1, nrow = 230, ncol = 4)
lstData <- rep(list(data), 16000)

library(data.table)
lstData <- Map(as.data.frame, lstData)
dfrData <- rbindlist(lstData)


system.time(dfrData <- rbindlist(lstData))
user  system elapsed 
0.12    0.03    0.15 

我不确定这是否有效,但你可以试试

library(plyr)
ldply(mylist)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM