dire che ho un frame di dati come questo:Fill in frame di dati con i valori da file sopra
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
Quindi valore è impostato solo per FIRST = TRUE una volta per ogni ID. ID_2 può essere duplicato tra gli ID, ma non è necessario.
Come si inseriscono i numeri dalle prime righe di ciascun ID in tutte le righe di quell'ID, in modo che la colonna VALUE diventi 2, 2, 2, 5, 5?
So che potrei semplicemente eseguire il loop su tutti gli ID con un ciclo for, ma sto cercando un modo più efficiente.
mi piace. Aggiunta minore a f4 per gestire NA precedenti. l'ultima riga dovrebbe essere: c (NA, x [quale (isnotblank)]) [cumsum (isnotblank) +1] – DangerMouse
Ottima risposta. f4 funziona anche con i personaggi. – BCC
Questo è brillante ma potrebbe trarre beneficio da qualche spiegazione. – C8H10N4O2