r - 当列表是行列表时,最有效的列表到 data.frame 方法

标签 r memory-management data-management

This question涵盖了我有一个列列表的情况,我希望将它们变成一个 data.frame。如果我有一个行列表,并且我希望将它们变成一个 data.frame 怎么办?

rowList <- lapply(1:500000,function(x) sample(0:1,300,x))

解决这个问题的简单方法是使用 rbindas.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/

相关文章:

r - 非常规数据帧整形

linux - 如何在 Linux 中分配满足分页和缓存能力要求的内存?

c - 带内存池的动态 VS 静态

c - 对齐内存管理?

python - 如何从具有指示重叠的重复值的数据中计算现象的共现

r - 朴素贝叶斯的特征选择

R 将最右边的数字加 1

c# - 从一组闹钟中获取第一个闹钟时间

r - 在 R 中管理元数据的最佳方法是什么?

r - R中DataTable中的条件格式单元格