Agrupe las filas según las brechas en las series de tiempo [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Agrupe las filas en el marco de datos según la diferencia de tiempo entre filas consecutivas 2 respuestas

Tengo una serie temporal de datos GPS, que debe segmentarse en partes más pequeñas basadas enbrechas en las marcas de tiempo.

Como ejemplo, considere el siguiente marco de datos, quieroagregar un número de segmento que segmenta cada 'trozos' de marcas de tiempo, escupiendo efectivamente los datos cada vez que hay una brecha en la serie de tiempo de al menos30 segundos.

El data.frame resultante se vería así:

   timestamp segment
1          1       1
2          3       1
3          5       1
4         10       1
5         42       2
6         45       2
7         92       3
8        156       4
9        160       4
10       162       4
11       163       4
12       164       4
13       200       5
14       203       5

¿Alguna forma de hacer esto de manera efectiva? Data.frame es un tbl_df agrupado (paquete dplyr) con varias series temporales distintas y puede ser bastante grande.