使用 rep/seq 创建 ID 列

Using rep/seq to create ID column

有没有一种有效的方法可以使用 rep/seq 或其他一些我没有想到的函数来创建 ID 列,如下所示:

1, 2, 3, 4, 4, 5, 5, 6, 6, 7, 7, 7, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10.. ...

因此,每 3 个数字,以下 3 个数字就会重复一次。我的实际数据需要一个序列:

1:1000-各1个

1001:2000- 每个 2

2001:3000 - 每个 3 个 ....

任何 ideas/help 将不胜感激。

我们可以使用

v2 <- 1:7000
rep(v2, as.integer(gl(length(v2), 1000, length(v2))))

第一种情况

v1 <- 1:15
rep(v1, as.integer(gl(length(v1), 3, length(v1))))
 [1]  1  2  3  4  4  5  5  6  6  7  7  7  8  8  8  9  9  9 10 10 10 10 11 11 11 11 12 12 12 12 13 13 13 13 13 14 14 14 14 14 15 15 15 15

我们可以在rep.int里面使用rep

第一种情况:

rep.int(1:12, rep(1:4, each = 3))

第二种情况:

rep.int(1:3e3, rep(1:3, each = 1e3))