在R中生成重复序列越来越多的截断次数

时间:2014-04-17 14:31:55

标签: r sequence

考虑R中的一些向量:x

x<-1:10

我想创建一个x的重复序列,每个序列的第一个元素在每次重复时被截断,产生与在R中发出以下命令所给出的输出相同的输出:

c(1:10,2:10,3:10,4:10,5:10,6:10,7:10,8:10,9:10,10:10)

可以这样做吗?实际上,我正在为x使用更大的向量。我正在使用rep()函数的多种组合,但无济于事。

3 个答案:

答案 0 :(得分:4)

以下是使用mapply的替代方法:

unlist(mapply(":", 1:10, 10))
#  [1]  1  2  3  4  5  6  7  8  9 10  2  3  4  5  6  7  8  9 10  3  4  5  6  7
# [25]  8  9 10  4  5  6  7  8  9 10  5  6  7  8  9 10  6  7  8  9 10  7  8  9
# [49] 10  8  9 10  9 10 10

答案 1 :(得分:2)

有点黑客,因为你可以将你想要做的事分解为两个序列:

rep(0:9, 10:1) + sequence(10:1)

您可以看到每个部分的功能。我不知道是否有办法将参数提供给rep()seq(),就像在Python扩展中那样。

答案 2 :(得分:1)

unlist(sapply(1:10, function(x) { x:10 }))