通过索引复制矢量元素

时间:2013-09-24 22:14:03

标签: r vector replication

我有一个整数向量:     a <- c(1,1,3,1,4) 其中a中的每个元素表示其索引应在新向量中复制的次数。

因此得到的矢量应该是:     b <- c(1,2,3,3,3,4,5,5,5,5)

最有效的方法是什么?

1 个答案:

答案 0 :(得分: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