¿Cómo asignar ID para filas consecutivas en R divididas por un tipo dado de fila? [duplicar

Esta pregunta ya tiene una respuesta aquí:

Creación de un vector específico sin bucle o recursión en R 2 respuestasSplit data.frame por valor 2 respuestas

Tengo un marco de datos cuyas filas representan personas. Para una familia determinada, la primera fila tiene el valor1 en la columnaA, y todas las filas siguientes contienen miembros de la misma familia hasta otra fila en la columnaA tiene el valor1. Entonces, comienza una nueva familia.

Me gustaría asignar ID a todas las familias en mi conjunto de datos. En otras palabras, me gustaría tomar:

A
1
2
3
1
3
3
1
4

Y conviértalo en:

A    family_id
1    1
2    1
3    1
1    2
3    2
3    2
1    3
4    3

Estoy jugando con un marco de datos de 3 millones de filas, así que un simpleforolución @ -loop Se me ocurrió que no alcanza la eficiencia necesaria. También elfamily_id no necesita ser secuencial.

Tomaré una solución dplyr.

Respuestas a la pregunta(1)

Su respuesta a la pregunta