如何在R中有效地附加列表的所有元素

时间:2015-08-15 20:00:16

标签: r append

所以,我有一个列表,其元素是可变长度的整数向量...它可以像这样再现

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只能在普通计算机上处​​理这个问题而唯一的解决办法就是将列表拆分成各个部分?

1 个答案:

答案 0 :(得分:1)

如果unlist元素已命名

,我们可以将use.names=FALSElist一起使用
 unlist(x, use.names=FALSE)