Расчет скользящего окна серии R zoo - PullRequest
2 голосов
/ 29 января 2010

Учитывая, что у меня есть набор данных зоопарка, я хотел бы выполнить скользящую операцию с ним, в результате чего получился бы другой набор данных зоопарка.

> x
                      Y
(09/24/09 08:00:13)   3.1
(09/24/09 08:05:13)   4.2
(09/24/09 08:10:13)   4.5
(09/24/09 08:15:13)   9.4
(09/24/09 08:20:13)   9.8
(09/24/09 08:25:13)   7.7
(09/24/09 08:30:13)  13.3
(09/24/09 08:35:13)   6.5
(09/24/09 08:40:13)  14.7
(09/24/09 08:45:13)  23.5
(09/24/09 08:50:13)  20.9
(09/24/09 08:55:13)   8.5

Моя цель - получить «гладкое» среднее значение путем итерации через каждый интервал времени и получения среднего значения для набора точек Y, которые составляют +/- 15 минут от текущей точки.

У меня есть метод усреднения, который работает с бэкетингом, но он уменьшает разрешение данных. Я не знал, как сделать относительные подмножества из зоопарка с помощью произвольной математики, окно должно помочь, но доступ к индексу затруднен.

Спасибо.

1 Ответ

5 голосов
/ 29 января 2010

Используйте rollmean. Вот пример:

x.Date <- as.Date(paste(2004, rep(1:4, 4:1), sample(1:28, 10), sep = "-"))
x <- zoo(rnorm(12), x.Date)
rollmean(x, 3)

В вашем случае вы захотите запаздывать с вашими данными после того, как вы взяли среднее значение, так как вы представляете среднее значение в определенный момент времени.

Наконец, вы должны знать о функции rollapply в зоопарке, которая может выполнять операцию прокрутки любой функции (включая ту, которую вы определили).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...