2017-12-28 4 views
-2

Ich habe einen Datenrahmen, in dem eine Spalte Daten in Jahren und die anderen Spaltenbeobachtungen z. Meereshöhe in mm.Berechne geglätteten Mittelwert für Zeitreihe

Ich muss den 10-Jahres geglätteten Mittelwert berechnen.

Hier einige gefälschte Daten:

x = rnorm(1:100) #annual sea leavel rise 
date = seq(1801,1900) #years from 1801 to 1900 

df = data.frame(date,x) #create data.frame 

Gibt es eine R-Funktion, die helfen könnte? Ist das geglättete Mittel gleich dem gleitenden Durchschnitt?

Vielen Dank für jede Hilfe und/oder einen Vorschlag

Antwort

1

Der gleitende Durchschnitt ist nur der einfachste Fall des mittleren geglättet, die weit in der Klimaforschung eingesetzt wird. Die R Filter Funktion, die durchaus eine bequeme Art und Weise sein kann, um Ihr Problem zu lösen

# sample data 
x <- rnorm(1:100) 
date <- seq(1801,1900) 
df <- data.frame(date,x) 
# coefficients for moving average are the simplest ones 
f10 <- rep(1/10,10) 
df[,"x_10ma"] <- filter(df$x, f10, sides = 1) 
# fast check 
plot(x = df$date, y = df$x, col="red") 
points(x = df$date, y = df$x_10ma,col="blue") 

Fortgeschrittenere Glättungsoptionen zur Verfügung gestellt werden, beispielsweise durch die "TTR" oder "glatte" Pakete.

Verwandte Themen