Таким образом, у меня есть временная серия xts в течение года с часовым поясом «UTC». Интервал между каждой строкой составляет 15 минут.period.apply более часа с решающим временем начала
x1 x2
2014-12-31 23:15:00 153.0 0.0
2014-12-31 23:30:00 167.1 5.4
2014-12-31 23:45:00 190.3 4.1
2015-01-01 00:00:00 167.1 9.7
Как я хочу данных в течение одного часа, чтобы для сравнения с другими наборами данных, я пытался использовать period.apply
:
dat <- period.apply(dat, endpoints(dat,on="hours",k=1), colSums)
Проблема в том, что первая строка в моем новом наборе данных является 2014-12-31 23:45:00
и не 2015-01-01 00:00:00
. Я попытался изменить вектор конечной точки, но почему-то продолжает говорить, что он выходит за пределы. Я также подумал, что это мой ответ: https://stats.stackexchange.com/questions/5305/how-to-re-sample-an-xts-time-series-in-r/19003#19003, но это не так. Я не хочу менять имена моих столбцов, я хочу суммировать их на другом интервале.
Здесь воспроизводимый пример:
library(xts)
seq<-seq(from=ISOdate(2014,12,31,23,15),length.out = 100, by="15 min", tz="UTC")
xts<-xts(rep(1,100),order.by = seq)
period.apply(xts, endpoints(xts,on="hours",k=1), colSums)
И результат выглядит следующим образом:
2014-12-31 23:45:00 3
2015-01-01 00:45:00 4
2015-01-01 01:45:00 4
2015-01-01 02:45:00 4
и заканчивается так:
2015-01-01 21:45:00 4
2015-01-01 22:45:00 4
2015-01-01 23:45:00 4
2015-01-02 00:00:00 1
В то время как я хотел бы, чтобы это всегда сумма за тот же интервал, то есть я хотел бы только 4s. (я использую RStudio 0.99.903 с R x64 3.3.2)
Возможно, кто-то может помочь вам, если вы предоставите образцы данных, которые воспроизводят вашу проблему. См. Http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example или http://meta.stackexchange.com/questions/176460/how-to-paste-data -from-r-to-stackoverflow – FXQuantTrader
Спасибо за ваши предложения. Я попытался сделать это яснее! – Daldal