假设我有一个从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)
我们可以反转矢量并应用 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)