Volviendo primera fila del grupo

Tengo un marco de datos que consiste en unID, eso es lo mismo para cada elemento en un grupo, dos tiempos de datos y el intervalo de tiempo entre estos dos. Uno de los objetos datetime es mi marcador de tiempo relevante. Ahora me gusta obtener un subconjunto del marco de datos que consta de la primera entrada para cada grupo. Las entradas (especialmente el intervalo de tiempo) deben permanecer intactas.

Mi primer enfoque fue ordenar el marco de acuerdo con 1. ID y 2. fecha y hora relevantes. Sin embargo, no pude devolver la primera entrada para cada grupo nuevo.

Entonces he estado mirando elaggregate() tanto comoddply() pero no pude encontrar una opción que devuelva la primera entrada sin aplicar una función de agregación al valor del intervalo de tiempo.

¿Hay una manera fácil de lograr esto?

ADICION: Tal vez no estaba claro al agregar mis notas agregadas () y ddply (). No necesariamente tengo que agregar. Dado que el marco de datos está ordenado de manera que la primera fila de cada grupo nuevo sea la fila que estoy buscando, bastaría con devolver un subconjunto con cada fila que tenga una ID diferente a la anterior (que es la fila de inicio de cada nuevo grupo).

Ejemplo de datos:

structure(list(ID = c(1454L, 1322L, 1454L, 1454L, 1855L, 1669L, 
1727L, 1727L, 1488L), Line = structure(c(2L, 1L, 3L, 1L, 1L, 
1L, 1L, 1L, 1L), .Label = c("A", "B", "C"), class = "factor"), 
    Start = structure(c(1357038060, 1357221074, 1357369644, 1357834170, 
    1357913412, 1358151763, 1358691675, 1358789411, 1359538400
    ), class = c("POSIXct", "POSIXt"), tzone = ""), End = structure(c(1357110430, 
    1357365312, 1357564413, 1358230679, 1357978810, 1358674600, 
    1358853933, 1359531923, 1359568151), class = c("POSIXct", 
    "POSIXt"), tzone = ""), Interval = c(1206.16666666667, 2403.96666666667, 
    3246.15, 6608.48333333333, 1089.96666666667, 8713.95, 2704.3, 
    12375.2, 495.85)), .Names = c("ID", "Line", "Start", "End", 
"Interval"), row.names = c(NA, -9L), class = "data.frame")

Respuestas a la pregunta(2)

Su respuesta a la pregunta