seleccione el valor máximo de fila por grupo

He estado tratando de hacer esto con mis datos mirando otras publicaciones, pero sigo recibiendo un error. Mis datosnew Se ve como esto:

id  year    name    gdp
1   1980    Jamie   45
1   1981    Jamie   60
1   1982    Jamie   70
2   1990    Kate    40
2   1991    Kate    25
2   1992    Kate    67
3   1994    Joe     35
3   1995    Joe     78
3   1996    Joe     90

Quiero seleccionar la fila con el valor de año más alto por id. Entonces la salida deseada es:

id  year    name    gdp
1   1982    Jamie   70
2   1992    Kate    67
3   1996    Joe     90

DeSelección de filas que contienen el valor máximo diario en R Intenté lo siguiente pero no funcionó

ddply(new,~id,function(x){x[which.max(new$year),]})

También he intentado

tapply(new$year, new$id, max)

Pero esto no me dio el resultado deseado.

¡Cualquier sugerencia realmente ayudaría!

Respuestas a la pregunta(5)

Su respuesta a la pregunta