Вот несколько возможностей в зависимости от того, что вы хотите.Оба используют 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)]