Agrupamento de dataframe R por valores conectados

Não encontrei uma solução para esse problema comum de agrupamento no R:

Este é o meu conjunto de dados original

ID  State
1   A
2   A
3   B
4   B
5   B
6   A
7   A
8   A
9   C
10  C

Esse deve ser meu conjunto de dados resultante agrupado

State   min(ID) max(ID)
A       1       2
B       3       5
A       6       8
C       9       10

Portanto, a idéia é classificar o conjunto de dados primeiro pela coluna ID (ou uma coluna de registro de data e hora). Todos os estados conectados sem intervalos devem ser agrupados e os valores mínimo e máximo de ID devem ser retornados. Está relacionado ao método rle, mas isso não permite o cálculo de valores mínimo, máximo para os grupos.

Alguma ideia?

questionAnswers(4)

yourAnswerToTheQuestion