在 R 中创建一个重复但递增的序列

Creating an repeating but increasing sequence in R

如果可能,我想仅使用 rep 和 'seq' 创建序列 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9。所以每次重复我都希望重复序列增加一个。这可以通过创建 rep(seq(1,5),5) 然后添加矢量 rep(0:4, each = 5).

来实现

但是有没有什么方法可以在不创建新向量并将其添加到第一个向量的情况下做到这一点?

你可以在一行中使用 outer + seq

> c(outer(seq(5), seq(5) - 1, `+`))
 [1] 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9

或更短的代码 embed

> c(embed(1:9, 5)[, 5:1])
 [1] 1 2 3 4 5 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8 5 6 7 8 9