2016-03-06 20 views

回答

3

我們可以將list轉換爲data.frame(使用library(reshape2)stackmelt)和然後split'ind'列由'values'在'd1'中。

d1 <- stack(lov) 
split(as.character(d1$ind), d1$values) 

或者,如果上述的方法是緩慢的,我們可以複製(rep)由每個list元件的length「LOV」的nameslengths給出的各元素的lengthvector輸出) 'lov'和split它由unlist

split(rep(names(lov), lengths(lov)), unlist(lov)) 
+0

第二個是可取的,因爲它不涉及添加包 – cannin

+1

@cannin第一個也不需要任何包。我指的是來自'reshape2'的'melt'。否則,'stack'是一個'base R'函數。 – akrun