Вот пример моих данных:агрегирование данных за неделю, или на 3 дня
Date Prec aggregated by week (output)
1/1/1950 3.11E+00 4.08E+00
1/2/1950 3.25E+00 9.64E+00
1/3/1950 4.81E+00 1.15E+01
1/4/1950 7.07E+00
1/5/1950 4.25E+00
1/6/1950 3.11E+00
1/7/1950 2.97E+00
1/8/1950 2.83E+00
1/9/1950 2.72E+00
1/10/1950 2.72E+00
1/11/1950 2.60E+00
1/12/1950 2.83E+00
1/13/1950 1.70E+01
1/14/1950 3.68E+01
1/15/1950 4.24E+01
1/16/1950 1.70E+01
1/17/1950 7.07E+00
1/18/1950 3.96E+00
1/19/1950 3.54E+00
1/20/1950 3.40E+00
1/21/1950 3.25E+00
У меня есть данные по осадкам серии долгое время, и я хочу, чтобы объединить его таким образом, что (выход в третьей колонке , Я рассчитал его из excel) следующим образом
Если я делаю агрегацию еженедельно выход в 1-й ячейке = средний показатель от дня 1 до 7 дней. выход во 2-й ячейке = средний показатель от 8 до 14 дней. Выход в 3-й ячейке = средний показатель от 15 до 21 дня
Если я делаю агрегацию на 3 дня выход в 1-й ячейке = средний день от 1 до 3 дней. выход во 2-й ячейке = средний день от 4 до 6 дней.
Я обеспечу функцию с помощью «prec» и «time step». Я пробовал циклы и lubridate
, POSIXct
и некоторые другие функции, но я не могу определить выход, как в третьей колонке.
Один код, который я придумал, бежал без ошибок, но мой вывод бот правильно. Где мой набор данных.
tt=as.POSIXct(paste(dat$Date),format="%m/%d/%Y") #converting date formate
datZoo <- zoo(dat[,-c(1,3)], tt)
weekly <- apply.weekly(datZoo,mean)
prec_NLCD <-data.frame (weekly)
Также я хотел написать его в виде функции. Ваши предложения будут полезны.
Спасибо Grothendieck rollapplyr и зоопарк работал – Wisconsin