selecione o valor máximo da linha por grupo

Eu tenho tentado fazer isso com meus dados olhando para outras postagens, mas continuo recebendo um erro. Meus dadosnew se parece com isso:

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

Quero selecionar a linha com o maior valor do ano por ID. Portanto, a saída desejada é:

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

DeSelecionando linhas que contêm valor máximo diário em R Eu tentei o seguinte, mas não funcionou

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

Eu também tentei

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

Mas isso não me deu a saída desejada.

Qualquer sugestão realmente ajudaria!

questionAnswers(5)

yourAnswerToTheQuestion