2010-07-11 69 views
8

我是新來的stackoverflow和相當新的R,但搜索了很長時間,很難找到以下問題的答案。如何更改R中的時間序列(XTS或ZOO)?

我有一些數據文件是針對時間序列的溫度。我將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軟件包的小插曲也會對你有用。

相關問題