3
假設你有以下的數據幀:滾動平均值從固定的起點(並且通過集團)
set.seed(100)
Pts <- floor(runif(20, 0, 10))
Individual <- c(rep("Adam",5), rep("Ben",5), rep("Charlie",5), rep("Daisy",5))
Date <- c(rep(seq(as.Date("2015-01-01"), as.Date("2015-01-05"), "days"), 4))
RollMean <- rep(NA,20)
df <- data.frame(Pts, Individual, Date, RollMean)
我想計算什麼積分平均RollMean爲每個行,通過個人,而是隻包括最早日期和當前行日期之間的條目。
例如:
df$RollMean <- ave(df$Pts, df$Individual, FUN= function(x) SMA(x, n))
但我不得不:
df$RollMean[3] = (5+2+3)/3
df$RollMean[4] = (5+2+3+0)/4
df$RollMean[7] = (8+4)/2
我已經使用的功能,例如SMA()
從TTR
包,然後使用ave
由組進行排序,如試過預先指定n
,其基於哪個行R正在處理而改變。
我可以用什麼代碼來生成滾動手段我在找什麼?
非常感謝,這個作品很棒。如果我想使用ETR()和WMA()等TTR中更復雜的移動平均函數,是否有一種方法可以在不手動模擬/分解這些計算的情況下合併這些函數? –