Ho un frame di dati che è simile al seguente:valore Assegnare al gruppo in base alla condizione nella colonna
> df = data.frame(group = c(1,1,1,2,2,2,3,3,3),
date = c(1,2,3,4,5,6,7,8,9),
value = c(3,4,3,4,5,6,6,4,9))
> df
group date value
1 1 1 3
2 1 2 4
3 1 3 3
4 2 4 4
5 2 5 5
6 2 6 6
7 3 7 6
8 3 8 4
9 3 9 9
voglio creare una nuova colonna che contiene il valore di data per ogni gruppo che è associato con il valore "4" dalla colonna del valore.
Il seguente frame di dati mostra ciò che spero di ottenere.
group date value newValue
1 1 1 3 2
2 1 2 4 2
3 1 3 3 2
4 2 4 4 4
5 2 5 5 4
6 2 6 6 4
7 3 7 6 8
8 3 8 4 8
9 3 9 9 8
Come si può vedere, il gruppo 1 ha la newValue "2" perché è la data associata al valore "4". Allo stesso modo, il gruppo due ha newValue 4 e il gruppo tre ha newValue 8.
Suppongo che ci sia un modo semplice per farlo usando ave() o un intervallo di funzioni dplyr/data.table, ma non ho avuto successo con il mio molti tentativi
@DavidArenburg Hai ragione! L'ho appena corretto –