2015-03-04 4 views
0

Я рассмотрел многие из вопросов, которые касаются агрегации данных временных рядов, но я не могу решить свою проблему. Мои данные выглядит следующим образом:Данные агрегирования временных рядов на 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, но я не могу заставить его работать.

+1

Параметр 'Функция cut.POSIXt' имеет возможность указать интервал вдоль линий' брейков = «15 мин» '. Похоже, что использование этого подхода было бы близким к тривиальному, если бы оно использовалось в сочетании с 'aggregate'. –

+0

Да, я только что понял это, спасибо BondedDust – Moderat

ответ

0

Для 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)

Смежные вопросы