Ho il seguente frame di dati (semplificato) con la variabile paese come un fattore e la variabile valore è mancante:valori Come riempire AN con LOCF da fattori di frame di dati, suddivisi per paese
country value
AUT NA
AUT 5
AUT NA
AUT NA
GER NA
GER NA
GER 7
GER NA
GER NA
I seguente genera il frame di dati di cui sopra:
data <- data.frame(country=c("AUT", "AUT", "AUT", "AUT", "GER", "GER", "GER", "GER", "GER"), value=c(NA, 5, NA, NA, NA, NA, 7, NA, NA))
Ora, vorrei sostituire i valori NA in ciascun sottoinsieme paese con il metodo dell'ultima osservazione effettuata (LOCF). Conosco il comando na.locf
nel pacchetto zoo. data <- na.locf(data)
mi darebbe la seguente struttura dei dati:
country value
AUT NA
AUT 5
AUT 5
AUT 5
GER 5
GER 5
GER 7
GER 7
GER 7
Tuttavia, la funzione deve essere utilizzata solo sui singoli sottogruppi suddivisi per paese. Quello che segue è l'output che mi servirebbe:
country value
AUT NA
AUT 5
AUT 5
AUT 5
GER NA
GER NA
GER 7
GER 7
GER 7
Non riesco a pensare a un modo semplice per implementarlo. Prima di iniziare con for-loops, mi chiedevo se qualcuno avesse qualche idea su come risolvere questo problema.
Molte grazie !!
Si potrebbe ottenere una risposta più rapida se hai modificato la tua domanda per includere una ragionevole struttura dei dati di test. –
Si desidera [zoo :: na.locf()] (http://www.inside-r.org/packages/cran/zoo/docs/na.locf)! – smci