考虑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()
函数的多种组合,但无济于事。
答案 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 }))