Selecione apenas a primeira linha ao mesclar quadros de dados com várias correspondências

Eu tenho dois quadros de dados, "dados" e "pontuações", e quero mesclá-los na coluna "id":

data = data.frame(id = c(1,2,3,4,5),
                  state = c("KS","MN","AL","FL","CA"))
scores = data.frame(id = c(1,1,1,2,2,3,3,3),
                    score = c(66,75,78,86,85,76,75,90))
merge(data, scores, by = "id")                  
semi_join(data, scores, by = "id")                  

Nos dados de "pontuações", há "id" com várias observações, em que cada partida obtém uma linha após a junção. Vejo?merge:

Se houver mais de uma correspondência, todas as correspondências possíveis contribuem com uma linha cada.

No entanto, quero manter apenas a linha correspondente aoprimeiro partida doscores mesa.

Uma semi-junção teria sido legal, mas não consigo selecionar a pontuação da tabela correta.

Alguma sugestão?

questionAnswers(3)

yourAnswerToTheQuestion