我必须创建一系列不同长度的大量(> 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个序列,效率非常低。有没有更简单的方法呢?
答案 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))