Заполните промежутки во временных рядах на час из-за изменения часового пояса / летнего времени - PullRequest
0 голосов
/ 31 мая 2018

У меня есть временной ряд с агрегированными данными (разные интервалы, например, 1 день, 12 часов и 30 минут).Данные выглядят следующим образом:

           open    close     high      low
2013-01-21 16.62600 17.13600 17.13600 16.62600
2013-01-22 17.21240 17.74800 17.85000 17.18699
2013-01-23 17.40467 17.93721 17.93721 17.21760
2013-01-24 18.00399 17.23800 19.53516 16.52400
2013-01-25 16.99912 17.74800 18.14193 15.88218

Для некоторых интервалов данные отсутствуют, и я хотел бы заполнить эти пробелы.Для этого я объединяю данные с объектом зоопарка на основе последовательности от начала до конца.

data.full = merge(data,zoo(,seq(start(data),end(data),by=interval)), all=TRUE)

К сожалению, последовательность, похоже, основана на 24 часах, а не на днях.Поэтому, как только начинается летнее время, созданная последовательность отключается на один час, и объединение больше не работает (и часовой пояс, очевидно, меняется с CET на CEST).

Последовательность зоопарка выглядит следующим образом:

2013-03-28 00:00:00 CET
2013-03-29 00:00:00 CET
2013-03-30 00:00:00 CET
2013-03-31 00:00:00 CET
2013-04-01 01:00:00 CEST
2013-04-02 01:00:00 CEST
2013-04-03 01:00:00 CEST
2013-04-04 01:00:00 CEST
2013-04-05 01:00:00 CEST

Какой самый простой (и самый гибкий способ) избавиться от этой проблемы?Я мог бы вручную изменить формат в объекте zoo, но я хотел бы использовать код для разных интервалов.

...