Ich habe einen Datenrahmen mit ein paar Spalten und ich möchte eine Zeile an den unteren Rand dieses Datenrahmens anhängen, der den gleitenden Durchschnitt der Wachstumsraten für die letzten 2 Datenzeilen enthält in jeder Spalte.R: Zeile als gleitende durchschnittliche Wachstumsrate anhängen
Daten:
A | B
3 | 4
4 | 3
5 | 5
4 | 3
1 | 5
Neue Zeile für Spalte A
, ((1-4)/4 + (4-5)/5)/2 = -0.475
und B
, 2/15
.
So würde der Datenrahmen mag:
A | B
3 | 4
4 | 3
5 | 5
4 | 3
1 | 5
-0.475 0.133
Ich habe die unten versucht, aber leider ist es nicht funktioniert ich nicht einen Weg finden, kann die letzte Berechnung verwenden für jede Spalte als die neue Zeile zu verwenden, . Wie soll ich das machen?
moving_avg_growth_rate = function (x) {
growth = x/lag(x) - 1
moving_average = filter(growth, rep(1/2, 2))
return (moving_average)
}
lapply(dataframe, moving_avg_growth_rate)
berechnen Sie die Wachstumsrate getrennt und dann 'rbind'it zum ursprünglichen df – cephalopod