【发布时间】:2016-06-17 11:57:38
【问题描述】:
我有一些长度的列表(比如说 1000)。列表的每个元素都是长度 = 2 的另一个列表。新列表的每个元素都是一个 data.table。每个列表的第二个元素可能是一个空的 data.table。
我需要 rbind() 位于列表第一个位置的所有 data.frames。我目前正在做以下事情:
DT1 = data.table()
DT2 = data.table()
for (i in 1:length(myList)){
DT1 = rbind(DT1, myList[[i]][[1]]
DT2 = rbind(DT2, myList[[i]][[2]]
}
这行得通,但是太慢了。有没有办法避免for循环?
提前谢谢你!
【问题讨论】:
-
即使您可以避免 for 循环,它也会很慢,因为您使用
rbind广泛地增长数据帧。 -
rbindlist(lapply(mylist, `[[`, 1L))? -
非常感谢,这比其他所有建议都快!请发布它,以便我可以“接受”您的回答。
标签: r data.table rbind