rep和/或seq函数创建连续减少向量?

Shi*_*toh 2 r

假设我有一个从1到5的向量,

 a<-c(1:5)
Run Code Online (Sandbox Code Playgroud)

我需要做的是通过连续丢失一个元素来重复向量.也就是说,最终结果应该是这样的

1 2 3 4 5 1 2 3 4 1 2 3 1 2 1 
Run Code Online (Sandbox Code Playgroud)

akr*_*run 5

我们可以反转矢量并应用 sequence

sequence(rev(a))
#[1] 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1
Run Code Online (Sandbox Code Playgroud)

或者另一个选择是 toeplitz

m1 <- toeplitz(a)
m1[lower.tri(m1, diag=TRUE)]
#[1] 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1
Run Code Online (Sandbox Code Playgroud)