【发布时间】:2012-11-22 23:31:07
【问题描述】:
我知道 R 包 bigmemory 在处理大型矩阵和数据帧方面效果很好。但是,我想知道是否有任何软件包或任何方法可以有效地处理大型列表。
具体来说,我创建了一个列表,其中的元素是向量。我有一个 for 循环,在每次迭代期间,多个值被附加到该列表中的选定元素(向量)。起初,它运行得很快,但是当迭代超过 10000 次时,它会逐渐变慢(一次迭代大约需要一秒钟)。我将经历大约 70000 到 80000 次迭代,之后列表会变得非常大。
所以我只是想知道在 bigmemory 包中是否有类似 big.list 之类的东西作为 big.matrix 可以加快整个过程。
谢谢!
【问题讨论】:
-
为什么不使用 do.call(rbind, your_list) 将列表转换为矩阵并使用 bigmemory?
-
你说你在'追加'?如果您为此使用例如 c() 或 rbind(),那可能会导致您的速度和内存问题。请参阅,burns-stat.com/pages/Tutor/R_inferno.pdf,第 12 页的 Circle 2 生长对象。您能否举一个您的代码作用的最小示例?