根据特定的分组数字序列对 data.frame 中的行进行分组

Group rows within a data.frame based on specific sequence of grouping numbers

这是我的例子 data.frame:

df = read.table(text = 'colA
1
1
1
0
1
1
0
0
0
1', header = TRUE)

我需要根据特定的分组数字(例如 3、2、2、3)对 colA 行进行分组,并为它们分配一个从 1900 到 1903 的数字。

期望的输出:

 colA  colB
    1   1900
    1   1900
    1   1900
    0   1901
    1   1901
    1   1902
    0   1902
    0   1903
    0   1903
    1   1903

4个分组数字的意思是:第1组=前3行,第2组=后2行,第3组=后2行,第4组=后3行。

有什么建议吗?

我们可以直接使用rep

df$colB <- rep(1900:1903, c(3, 2, 2, 3))
df$colB
#[1] 1900 1900 1900 1901 1901 1902 1902 1903 1903 1903