如何列表中的所有元素追加有效R中
问题描述:
所以,我有是可变长度的整数向量元素列表...可以复制这样如何列表中的所有元素追加有效R中
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
与use.names=FALSE
如果list
元素被命名为
unlist(x, use.names=FALSE)
+1
替代品是'rapply(x, c)'和'c(x,递归= T)'但你的速度更快! –
你试过'不公开(X,use.names = FALSE)'。 'unlist'是相当快的,但如果列表元素的数量太大,拆分过程可能会更好 – akrun
omg ...我怎么能忘记unlist的存在......谢谢 – Felipe