Агрегирование данных временных рядов за 15 минут

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

                    Pings Adult Entertainment Female Information Lifestyle Male MAV.TV MeTV News Pursuit Sports Young Adult
2015-01-05 07:30:00     1     0             0      0           0         0    0      0    0    0       0      0           0
2015-01-05 07:43:00     1     0             0      0           0         0    0      0    0    0       0      0           0
2015-01-05 07:44:00     1     0             0      0           0         0    0      0    0    0       0      0           0
2015-01-05 07:59:00     5     0             0      0           0         0    0      0    0    0       0      0           0
2015-01-05 08:02:00     1     0             0      0           0         0    0      0    0    0       0      0           0
2015-01-05 08:17:00     1     0             0      0           0         0    0      0    0    0       0      0           0

и я хочу найти способ свернуть это с шагом в 15 минут, суммируя каждую строку. Я пробовал методы merge и cut и aggregate и na.locf, но ни один из них не работает. Я также пробовал period.apply, но не могу заставить его работать.


person Moderat    schedule 04.03.2015    source источник
comment
Функция cut.POSIXt имеет возможность указать интервал по строкам breaks="15 min". Похоже, что использование этого подхода было бы почти тривиальным, если бы его использовали в сочетании с aggregate.   -  person IRTFM    schedule 05.03.2015
comment
Да, я только что понял, спасибо BondedDust   -  person Moderat    schedule 05.03.2015


Ответы (1)


Для timebreak = ISOdatetime(2015, 1, 5, 7, 0, 0) + (seq(0,7)*15*60) я использовал fac = cut(time(data), breaks = timebreak), а затем aggregate(data, by = fac, FUN = sum)

person Moderat    schedule 04.03.2015