R Subconjunto data.frame del valor máximo de un vector y agrupado por otro [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Cómo seleccionar la fila con el valor máximo en cada grupo 8 respuestas
>ID<-c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C', 'C')
>WK<-c(1, 2, 3, 1, 2, 3, 1, 2, 3, 4, 5)
>NumSuccess<-c(0, 0, 2, 0, 0, 1, 0, 0, 0, 0, 3)
>Data<-data.frame(ID, WK, NumSuccess)

Estoy tratando de crear un subconjunto data.frame "Data2" basado en el valor en "NumSuccesses" que corresponde al valor máximo en "WK" agrupado por "ID". Data.frame resultante debería verse así:

>ID<-c('A','B','C')
>WK<-c(3, 3, 5)
>NumSuccess<-c(2, 1, 3)
>Data2<-data.frame(ID, WK, NumSuccess)

Respuestas a la pregunta(1)

Su respuesta a la pregunta