3

我正在尝试将包含 13,000 个元素的列表(每个元素都是zoonr = 230 和 ncol = 4 的对象)转换为数据框。

我试过setattr(mylist, 'class', 'data.frame')了,但它导致了一个巨大的 NA 向量。我也尝试过包中的quickdf(mylist)功能plyr,但这也不起作用。

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

关于将此类列表转换为数据框的最有效方法有什么建议吗?

4

2 回答 2

9

使用 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 
于 2013-08-16T13:10:37.963 回答
0

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

library(plyr)
ldply(mylist)
于 2013-08-16T12:45:52.067 回答