Rellene el marco de datos con los valores de las filas de arriba

Digamos que tengo un marco de datos 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>

Por lo tanto, VALUE solo se establece para FIRST = TRUE una vez por ID. ID_2 puede estar duplicado entre ID, pero no tiene que hacerlo.

¿Cómo coloco los números de las primeras filas de cada ID en todas las filas de ese ID, de modo que la columna VALOR se convierta en 2, 2, 2, 5, 5?

Sé que simplemente podría pasar por todas las ID con un bucle for, pero estoy buscando una forma más eficiente.

Respuestas a la pregunta(4)

Su respuesta a la pregunta