【发布时间】:2015-11-08 19:36:30
【问题描述】:
所以,我有一个列表,其中的元素是可变长度的整数向量......它可以像这样复制
N<-1000
x<-list()
for(i in 1:N){
x[[i]]<-1:sample.int(10,1)
}
但就我而言,我有一个包含一百万个元素的列表,N=1.000.000。
我需要附加列表的所有元素以创建一个唯一的向量。我尝试了以下方法,所有这些方法都非常慢,实际上永远不会结束运行,因为在 R 中追加确实效率低下。
library(abind)
abind(x)
还有这个:
y<-integer()
for(i in 1:length(x)){
y<-append(y,x[[i]])
}
你有什么建议?向量最终将有大约 1000 万个值......所以也许 R 无法在普通计算机中处理这个问题,唯一的解决方案是将列表分成不同的部分?
【问题讨论】:
-
你试过
unlist(x, use.names=FALSE)。unlist相当快,但是如果列表元素的数量太大,拆分进程可能会更好 -
omg...我怎么能忘记unlist的存在...谢谢