Ich habe Datenbank mit Zeitdaten. Ich möchte die Daten interpolieren, um einen bestimmten Zeitschritt durchzuführen.Interpolation von Zeitreihendaten mit spezifischer Ausgabezeit
Id Time humid humtemp prtemp press t
1 2012-01-21 18:41:50 47.7 14.12 13.870 1005.70 -0.05277778
1 2012-01-21 18:46:43 44.5 15.37 15.100 1005.20 0.02861111
1 2012-01-21 18:51:35 43.2 15.88 15.576 1005.10 0.10972222
1 2012-01-21 18:56:28 42.5 16.17 15.833 1004.90 0.19111111
1 2012-01-21 19:01:21 42.2 16.31 15.986 1004.80 0.27250000
1 2012-01-21 19:06:14 41.8 16.47 16.118 1004.60 0.35388889
1 2012-01-21 19:11:07 41.6 16.51 16.177 1004.60 0.43527778
Ich möchte Daten mit unter Zeitschritt Interpolation zu erhalten.
Id Time humid humtemp prtemp press t
1 2012-01-21 18:45:00 .... ... ..... .... ....
1 2012-01-21 18:50:00 ....
1 2012-01-21 18:55:00 ....
1 2012-01-21 19:00:00 ....
1 2012-01-21 19:05:00 ....
1 2012-01-21 19:10:00 ....
Ich versuchte mit verschiedenen Methoden, aber ich habe die Lösung nicht gefunden. Zum Beispiel erstelle ich ein Zoo-Objekt.
z <- zoo(MTS01m,order.by=MTS01m$Time)
tstart2<-asP("2012-01-21 18:45:00")
Ts<-1*60
y <- merge(z, zoo(order.by=seq(tstart2, end(z), by=Ts)))
xa <- na.approx(y)
xs <- na.spline(y)
aber Fehler auftreten:
Errore in approx(x[!na], y[!na], xout, ...) :
need at least two non-NA values to interpolate
Inoltre: Warning message:
In xy.coords(x, y) : si è prodotto un NA per coercizione
ich einen secundary Index t erstellen, die beginnen, wo ich Daten haben wollen, aber ich weiß nicht, wie thid Index zu verwenden.
Haben Sie einen Vorschlag?
Ich bin ganz neu, ich gelesen und stimme. Tschüss –
Danke. Aus welchem Paket stammt 'asP'? – GSee
Es ist nur eine Funktion, die von mir geschrieben wurde, um eine Sprache zu haben. Ich benutze es, um einfach von Zeichen zu POSIXct zu wechseln. Funktion (timeVal, tz = "GMT", ...) { ## Für einfache Umwandlung von String oder Sekunden seit 1970-01-01 zu POSIXct Schalter (Klasse (timeVal [1]) [1], Zeichen = as.POSIXct (timeval, tz = tz, ...), POSIXct = timeval, POSIXlt = timeval, isodate (1970,1,1,0) + timeval ) } –