Konvertieren Sie Ihre Datumszeichenfolge in ein Date-Objekt und subtrahieren Sie von heute, um den Zeitunterschied zu finden. Erstellen Sie eine Exponentialfunktion basierend auf dieser Zeitdifferenz und einer Zeitkonstante. Verwenden Sie dies, um Ihre Gewichtungen zu erstellen, und multiplizieren Sie dann mit den entsprechenden Spalten.
cols <- c('Div', 'Date', 'FTHG', 'FTA', 'R')
d <- rbind(
c('I1','30.08.2014','0','1','A'),
c('I1','30.08.2014','2','0','H'),
c('I1','14.09.2014','4','5','A'),
c('I1','14.09.2014','2','0','H'),
c('I1','15.09.2014','2','1','H'),
c('I1','20.09.2014','2','2','D'),
c('I1','20.09.2014','0','1','A'),
c('I1','21.09.2014','0','1','A'),
c('I1','21.09.2014','2','3','A'),
c('I1','21.09.2014','1','0','H'),
c('I1','21.09.2014','1','1','D'),
c('I1','21.09.2014','2','0','H')
)
df <- data.frame(d)
colnames(df) <- cols
# Adjust this
time_constant <- 5.79
df$Weight <- exp(-((as.numeric(Sys.Date() - as.Date(df$Date,"%d.%m.%Y")))/365)
/time_constant)
df$Home <- df$Weight * as.numeric(as.vector(df$FTHG))
df$Away <- df$Weight * as.numeric(as.vector(df$FTA ))
print(df)
Ausgabe
Div Date FTHG FTA R Weight Home Away
1 I1 30.08.2014 0 1 A 0.7248692 0.0000000 0.7248692
2 I1 30.08.2014 2 0 H 0.7248692 1.4497384 0.0000000
3 I1 14.09.2014 4 5 A 0.7300325 2.9201298 3.6501623
4 I1 14.09.2014 2 0 H 0.7300325 1.4600649 0.0000000
5 I1 15.09.2014 2 1 H 0.7303780 1.4607559 0.7303780
6 I1 20.09.2014 2 2 D 0.80 1.4642161 1.4642161
7 I1 20.09.2014 0 1 A 0.80 0.0000000 0.80
8 I1 21.09.2014 0 1 A 0.7324545 0.0000000 0.7324545
9 I1 21.09.2014 2 3 A 0.7324545 1.4649091 2.1973636
10 I1 21.09.2014 1 0 H 0.7324545 0.7324545 0.0000000
11 I1 21.09.2014 1 1 D 0.7324545 0.7324545 0.7324545
12 I1 21.09.2014 2 0 H 0.7324545 1.4649091 0.0000000
Welche Funktion verwenden möchten, um die Gewichte zu berechnen? An welchem Punkt wird das Gewicht Null, steigen die Gewichte linear oder logarithmisch? Bitte erweitern Sie Ihre Frage. – hugovdberg
exponentielle Glättung, Sigma 0,065 –