2013-02-27 6 views
11

Ich habe eine Klima-Zeitreihe mit fehlenden Daten (keine fehlenden Werte). Zum Beispiel:Zoo-Objekt mit fehlenden Daten interpolieren

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) 

Wie kann ich 'füllen' (durch Interpolation) diese fehlenden Punkte, angesichts der 'full.dates' Vektor? Danke!

Antwort

17

Mit einem "leeren" Objekt zusammenführen, das alle gewünschten Daten enthält, dann na.approx (oder na.spline usw.) verwenden, um die fehlenden Werte auszufüllen.

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

Danke, es funktioniert! – Fernando

+1

Probieren Sie auch na.locf aus: es nimmt den letzten Wert vor einer gegebenen NA – natbusa

Verwandte Themen