Preencha o quadro de dados com valores das linhas acima

Digamos que eu tenha um quadro de dados como este:

<code>ID,  ID_2, FIRST, VALUE
-----------------------
'a', 'aa', TRUE, 2
'a', 'ab', FALSE, NA
'a', 'ac', FALSE, NA
'b', 'aa', TRUE, 5
'b', 'ab', FALSE, NA
</code>

Então VALUE só é definido para FIRST = TRUE uma vez por ID. ID_2 pode ser duplicado entre os IDs, mas não é necessário.

Como faço para colocar os números das primeiras linhas de cada ID em todas as linhas desse ID, de modo que a coluna VALUE se torne 2, 2, 2, 5, 5?

Eu sei que poderia simplesmente percorrer todos os IDs com um loop for, mas estou procurando uma maneira mais eficiente.

questionAnswers(4)

yourAnswerToTheQuestion