Я плохо знаком с stackoverflow и довольно плохо знаком с R, но искал долго и трудно и не могу найти ответ на следующий вопрос.
У меня есть много файлов данных, которые являются температурой против временного ряда. Я импортирую CSV как объект ЗООПАРКА, затем преобразовывающий в 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 не 0:00:00 или 0:29:00 вместо 0: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
Я хочу исправить эти временные ряды, поскольку мелкое различие не важно для моего анализа, и я в конечном счете хочу объединить файлы, таким образом, каждый timeseries должен иметь ту же синхронизацию.
Я хочу команду, которая может просто сказать, "смещают временной ряд вперед на 1 минуту, но не изменяют столбец данных (например, S_21). У меня была некоторая удача с gsub()
на более легких изменениях, и рассмотренный комплекс regex для изменения данных, прежде чем это будет преобразовано в ЗООПАРК или XTS. Я читал о lag()
и diff()
но они, кажется, перемещают значения данных относительно временного ряда; исправьте меня, если я неправ.
Любая справка, решая эту проблему очень ценилась бы.
Попробуйте
index(master21) <- index(master21) + 60 # adds a minute
что добавит минуту к временному индексу. Затем вы можете использовать merge ()
для выравнивания временных меток.
В целом виньетки из пакета zoo
также будут вам полезны.