2012-07-06 43 views
3

給出一個列表(一)與相同長度的數值向量(B)爲:結合基礎上的索引列表中的元素在另一個載體

a <- list(1, c(3, 7), 5) 
b <- c(1,1,2) 

如何創建長度最長的一個新的列表( b)如果在每一個元素都根據b將在相應的指數,如果多個事件發生結合,使您獲得:

[[1]] 
[1] 1 3 7 

[[2]] 
[1] 5 

這樣應該可以非常有效地進行(無環路),作爲尺寸我的數據往往非常大...

我敢肯定有我,有沒有想過一個顯而易見的解決方案...

感謝您的幫助

回答

5

什麼:

split(unlist(a), rep(b, sapply(a, length))) 
$`1` 
[1] 1 3 7 

$`2` 
[1] 5 
+0

完美 - 謝謝你 – ThomasP85 2012-07-06 07:23:54

3

這裏的另一種方式

> lapply(split(a, b), unlist) 
$`1` 
[1] 1 3 7 

$`2` 
[1] 5 
相關問題