Как я могу изменить временной ряд (XTS или ZOO) в R? - PullRequest
9 голосов
/ 12 июля 2010

Я новичок в StackOverflow и достаточно новый для R, но искал долго и упорно и не могу найти ответ на следующий вопрос.

У меня есть несколько файлов данных, температура которых зависит от временного ряда. Я импортирую CSV как объект ZOO, а затем конвертирую в XTS. Правильный файл выглядит следующим образом: показания часа и получаса:

>head(master1)
                       S_1
2010-03-03 00:00:00 2.8520
2010-03-03 00:30:00 2.6945
2010-03-03 01:00:00 2.5685
2010-03-03 01:30:00 2.3800
2010-03-03 02:00:00 2.2225
2010-03-03 02:30:00 2.0650

Но значение времени у некоторых немного меньше - т. Е. 23:59:00, а не 00:00:00 или 00:29:00 вместо 00: 30: 00.

>head(master21)
                       S_21
2010-03-04 23:59:00  -0.593
2010-03-05 00:29:00  -0.908
2010-03-05 00:59:00  -1.034
2010-03-05 01:29:00  -1.223
2010-03-05 01:59:00  -1.349
2010-03-05 02:29:00  -1.538

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

Мне нужна команда, которая может просто сказать «сдвинуть временной ряд вперед на 1 минуту, но не изменять столбец данных (например, S_21). Мне повезло с gsub() в более простых изменениях, и я рассмотрел сложное регулярное выражение для изменения данных перед их преобразованием в ZOO или XTS. Я читал о lag() и diff(), но они, кажется, перемещают значения данных относительно временного ряда; поправьте меня пожалуйста если я не прав.

Любая помощь в решении этой проблемы будет принята с благодарностью.

1 Ответ

11 голосов
/ 12 июля 2010

Попробуйте

index(master21) <- index(master21) + 60    # adds a minute

, что добавит минуту к указателю времени.Затем вы можете использовать merge() для выравнивания меток времени.

В общем, виньетки из пакета zoo будут вам полезны.

...