This question涵盖了我有一个列列表的情况,我希望将它们变成一个 data.frame。如果我有一个行列表,并且我希望将它们变成一个 data.frame 怎么办?
rowList <- lapply(1:500000,function(x) sample(0:1,300,x))
解决这个问题的简单方法是使用 rbind
和 as.data.frame
,但我们甚至无法通过 rbind
步骤:
>Data <- do.call(rbind,vectorList)
Error: cannot allocate vector of size 572.2 Mb
什么是更有效的做法?
最佳答案
取消列出
您的列表并填充矩阵可能是最快/最有效的:
> m <- matrix(unlist(vectorList), ncol=300, nrow=length(vectorList), byrow=TRUE)
但是您将需要约 6GB 的 RAM 来处理整数向量,需要约 12GB 的 RAM 来处理数值向量。
> l <- integer(5e6*300)
> print(object.size(l),units="Gb")
5.6 Gb
关于r - 当列表是行列表时,最有效的列表到 data.frame 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8764030/