Агрегация времени 15 минут в R - PullRequest
1 голос
/ 02 сентября 2010

У меня есть серия зоопарков в R. Я могу выбрать между хрон или индексом POSIXct.

Как я могу агрегировать до 15 минут, принимая последний элемент каждые 15 минут?как агрегировать ежедневно, писать как. Дата, но не как агрегировать каждые 15 минут.

спасибо.

Ответы [ 2 ]

3 голосов
/ 02 сентября 2010

Если я помню, это задокументировано в зоопарке виньетки. Вы смотрели там?

Пакет xts , основанный на zoo , имеет вспомогательные функции - см., В частности, help(to.period) и to.minutes15.

1 голос
/ 03 сентября 2010

Вот несколько возможностей в зависимости от того, что вы хотите.Оба используют trunc.times из пакета chron.Решение aggregate.zoo принимает последнее значение в каждом 15-минутном интервале и помечает его, используя время в начале 15-минутного интервала, поэтому используются следующие значения: 00:00:00, 00:15:00, 00:30:00 и 00:45:00.Решение duplicated использует те же значения, но помечает их, используя последний раз, фактически найденный в данных.В обоих случаях мы включаем только интервалы, для которых имеются данные.

Есть еще примеры aggregate.zoo в (1) ?aggregate.zoo, (2) во всех трех виньетках зоопарка есть примеры и (3) поиск в архивах r-help слов aggregate.zoo иtrunc находит еще больше примеров.

library(zoo)
library(chron)
z <- zoo(1:10, chron(1:10/(24*13)))

# 1. last value in each 15 minute interval 
# using time at which interval begins

aggregate(z, trunc(time(z), "00:15:00"), tail, 1)

# 2. last value in each 15 minute interval 
# time of last point in data within interval

z[!duplicated(trunc(time(z), "00:15:00"), fromLast = TRUE)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...