2013-02-27 12 views
11

Ho una serie temporale con date mancanti (valori mancanti). Per esempio:Interpola oggetto zoo con date mancanti

n = 15 
full.dates = seq(Sys.Date(), by = 'day', length = n) 
serie.dates = full.dates[c(1:10, 12, 15)] # missing 11, 13, 14 
y = rnorm(n) 

require(zoo)  
serie = zoo(y, serie.dates) 

come posso 'riempire' (mediante interpolazione) questi punti mancanti, dato il vettore 'full.dates'? Grazie!

risposta

17

Unire un oggetto "vuoto" con tutte le date desiderate, quindi utilizzare na.approx (o na.spline, ecc.) Per inserire i valori mancanti.

x <- merge(serie, zoo(,seq(start(serie),end(serie),by="day")), all=TRUE) 
x <- na.approx(x) 
+0

Grazie, funziona! – Fernando

+1

Prova anche na.locf: prende il valore più recente prima di un dato NA – natbusa