Мне нужно назначить идентификаторы подгруппы, учитывая идентификатор группы и индикатор, показывающий начало новой подгруппы. Вот набор тестовых данных:
group <- c(rep("A", 8), rep("B", 8))
x1 <- c(rep(0, 3), rep(1, 3), rep(0, 2))
x2 <- rep(0:1, 4)
df <- data.frame(group=group, indic=c(x1, x2))
Вот результирующий фрейм данных:
df
group indic
1 A 0
2 A 0
3 A 0
4 A 1
5 A 1
6 A 1
7 A 0
8 A 0
9 B 0
10 B 1
11 B 0
12 B 1
13 B 0
14 B 1
15 B 0
16 B 1
indic==1
означает, что строка является началом новой подгруппы, а подгруппа должна быть пронумерована 1 выше, чем в предыдущей подгруппе. Где indic==0
подгруппа должна быть такой же, как и предыдущая подгруппа. Нумерация подгрупп начинается с 1. Когда переменная group
изменяется, нумерация подгрупп сбрасывается на 1. Я хотел бы использовать механизм Tidyverse. Вот результат, который я хочу получить:
df
group indic subgroup
1 A 0 1
2 A 0 1
3 A 0 1
4 A 1 2
5 A 1 3
6 A 1 4
7 A 0 4
8 A 0 4
9 B 0 1
10 B 1 2
11 B 0 2
12 B 1 3
13 B 0 3
14 B 1 4
15 B 0 4
16 B 1 5
Я хотел бы дать некоторые методы, которые я уже пробовал, но они не работали, но я не смог найти ничего, даже близко. Любая помощь будет оценена.