Ich versuche, den Adstock-Effekt für eine Variable zu erstellen (adstock ist definiert als Wert der vorherigen Beobachtung + Wert der vorherigen Beobachtung * adstock rate). Ich habe eine Tabelle abc, die zwei Spalten hat: GEOG (A, B, C) und GRPs (1 bis 6) für insgesamt 18 Beobachtungen. Ich möchte eine Variable b erstellen, indem ich die ersten Obs des ersten GEOG nehme und es mit .5. Wenn ich dann zu den ersten Obs des zweiten GEOG komme, reinitialisiere es = zu GRPs und mache es erneut. Ich habe einen Code erstellt, der mit nur einer Geografie sehr gut funktioniert. Aber ich kann nicht herausfinden, wie man es durch Geographie macht. Aus einer anderen statistischen Sprache kommend, umschlinge ich immer noch den Kopf, wie R funktioniert. Kann jemand helfen? Danke im Voraus. Hier ist der Code, der für ein GOEG funktioniert:R - Adstock nach Gruppe
rate1=.5
rate2=0
for (i in 1:nrow(abc)) {
if (i ==1)
abc[i,3] <- abc[i,2]
else if (i == 2)
#Effect = impression + last week effect * decay rate
abc[i,3] <- abc[i,2] + (abc[i-1,3] * rate1)
else
#Effect = impression + last week effect * decay rate
abc[i,3] <- abc[i,2] + (abc[i-1,3] * rate1) + (abc[i-2,3]*rate2)
}
Ausgang:
GEOG a b
A 1 1
A 2 2.5
A 3 4.25
A 4 6.125
A 5 8.0625
A 6 10.03125
B 1 1
B 2 2.5
B 3 4.25
B 4 6.125
B 5 8.0625
C 1 1
C 2 2.5
C 3 4.25
C 4 6.125
C 5 8.0625
Geben Sie bitte ein reproduzierbares Datenbeispiel und das gewünschte Ergebnis an. https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-beispiel –