创建一系列不同长度的序列

时间:2015-12-05 14:14:30

标签: r sequence

我必须创建一系列不同长度的大量(> 10,000)序列。我只以矢量形式知道这些序列的长度。

length_v <- c(2,3,4,4,2,6,11,75...................)

每个序列从1开始并以1的步长向前移动。在最后的序列中(组合一个),每个序列必须一个接一个地出现,它们不能混杂起来。

下面是一个小小的示例:

我说有4个长度分别为2,3,4,6的序列。

s1 <- seq(1, 2)  # 1,2
s2 <- seq(1, 3)  # 1,2,3
s3 <- seq(1, 4)  # 1,2,3,4
s4 <- seq(1, 6)  # 1,2,3,4,5,6 

最终序列将是

final <- c(s1,s2,s3,s4) **# the order has to be this only. No compromise here.**

我不能用&gt;这样做10,000个序列,效率非常低。有没有更简单的方法呢?

2 个答案:

答案 0 :(得分:5)

我们可以使用sequence

sequence(length_v)
#[1] 1 2 1 2 3 1 2 3 4 1 2 3 4 5 6

数据

length_v <- c(2,3,4,6)

答案 1 :(得分:3)

示例:

unlist(sapply(c(2,3,4,6), seq, from=1))

所以对你来说就是:

unlist(sapply(length_v, seq, from=1))