У меня есть набор данных с несколькими сайтами и годами выборки, с оценкой за каждый день года. Например, у SiteA есть данные за 40 лет со значением для каждого дня, а год выборки определен как Sampling.Year. Чтобы запутать, наш год выборки - июль-июнь, поэтому принимает форму 2016-2017. Например:
SiteName Sampling.Year Date Score
A 2015-2016 1
A 2015-2016 5
A 2015-2016 2
A 2016-2017 3
A 2016-2017 12
A 2016-2017 6
B 2015-2016 9
B 2015-2016 2
B 2015-2016 1
B 2016-2017 4
B 2016-2017 1
B 2016-2017 7
Я хочу применить скользящее среднее значение за 182 дня к этим данным, чтобы найти максимальный (средний показатель за 182 дня) для каждой комбинации сайт / выборка. Год. Результат будет, например:
Site Sampling.Year MaxAve StartDate
A 2016-2017 7.5 01/10/2016
A 2017-2018 6.0 12/12/2017
B 2016-2017 2.3 13/11/2016
B 2017-2018 4.2 09/09/2017
Я сохранил образец набора данных здесь: Пример данных . Я хочу использовать код al oop (потому что я новичок, и я не уверен в лучшем способе) в соответствии с этим, но это группировка сайтов и годы, которые я считаю хитрыми. В идеале мне бы хотелось, чтобы скользящее среднее можно было экспортировать в виде нового кадра данных с начальной и конечной датой (или, по крайней мере, начальной датой) для каждого окна, чтобы мы могли сравнить его с погодными условиями в то время.
Moving_Average_Function <- function(arr, n=182){
res = arr
for(i in n:length(arr)){
res[i] = mean(arr[(i-n+1):i])
}
res
}
Заранее спасибо