我正在嘗試爲某些變量(adstock定義爲先前觀察的值+先前觀察的值* adstock rate)創建adstock效果。我有一個表格abc,它有兩列:GEOG(A,B,C)和GRP(1到6),共18個觀測值。我想創建一個變量b,通過獲取第一個GEOG的第一個obs,並通過.5進行adstocking。然後,當我到達第二個GEOG的第一個對象時,重新初始化它= GRP並再次執行。我創建了一個僅適用於一個地理區域的代碼。但我不知道如何通過地理來做到這一點。來自不同的統計語言,我仍然在圍繞着R的工作方式而努力。誰能幫忙?提前致謝。下面是一個GOEG工作代碼:R - 按組的廣告
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)
}
輸出:
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
請提供可重現的數據示例和期望的結果。 https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example –