2010-07-11 6 views
8

Я новичок в StackOverflow и достаточно новый для R, но искал долго и упорно и не могу найти ответ на следующий вопрос.Как изменить временные ряды (XTS или ZOO) в 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(), но они, кажется, чтобы переместить значение данных относительно временных рядов;., пожалуйста, поправьте меня, если я ошибаюсь

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

ответ

10

Пробег:

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

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

В целом, вы также найдете виньетки пакета zoo.