2013-09-24 124 views
1

我有一個整數向量: a <- c(1,1,3,1,4) 其中a中的每個元素表示其索引應該在新向量中複製多少次。通過索引複製向量元素

所以得到的載體應該是: b <- c(1,2,3,3,3,4,5,5,5,5)

什麼是做到這一點的最有效方法是什麼?

回答

3

例如使用rep

rep(seq_along(a),a) 
1 2 3 3 3 4 5 5 5 5 

另一個效率較低的選擇是使用inverse.rle

inverse.rle(list(lengths=a,values=seq_along(a))) 
[1] 1 2 3 3 3 4 5 5 5 5