Как я могу изменить временной ряд (XTS или ZOO) в R?
Я новичок в Stackru и достаточно новый для 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 ответ
Пытаться
index(master21) <- index(master21) + 60 # adds a minute
который добавит минуту к индексу времени. Вы можете использовать merge()
как отметки времени совпадают.
В целом, виньетки zoo
Пакет будет полезен и для вас.