2010-07-11 25 views
8

Yığın akışında yeni ve R için oldukça yeni ama uzun ve zor arama yaptım ve şu soruya cevap bulamıyorum.R'de bir zaman serisini (XTS veya ZOO) nasıl değiştirebilirim?

Bir zaman dizisine göre sıcaklık olan bir dizi veri dosyam var. CSV'yi bir ZOO nesnesi olarak alıyorum ve sonra XTS'ye dönüştürüyorum. Bir doğru dosya saatte okumalar ve yarım saat ile, şuna benzer:

>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 

Ama bazı zaman değeri biraz uzaktır - 23:59:00 değildir 00:00:00 ya 00 yani: 00:30:00 yerine 29: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 

Ben dakikalık fark benim analiz için önemli olmadığından, bu zaman serilerini düzeltmek istiyorum ve sonuçta dosyaları birleştirmek istiyorum, böylece her timeseries aynı zamanlamayı sahip olması gerekir.

ben daha kolay değişiklikleri gsub() ile biraz şans oldu . Sadece 1 dakika ileri zaman serileri kayması, ancak veri sütununu (örneğin S_21) değiştirmez" diyebilecek bir komut istiyor ve Tasarlanmış . o ZOO veya xts dönüştürülür önce verileri değiştirmek için karmaşık regex Ben yaklaşık lag() ve diff() okudum ama zaman serileri göre veri değerlerini taşımak gibi görünüyor;. yanlış varsa düzeltin lütfen

Herhangi bir yardım Bu sorunu çözmek için çok teşekkür ederiz.

cevap

10

Zaman indeksine bir dakika eklenecek olan
index(master21) <- index(master21) + 60 # adds a minute 

. Daha sonra zaman damgaları hizalandığında merge()'u kullanabilirsiniz.

Daha genel olarak, zoo paketinin vinyetleri de sizin için yararlı olacaktır.

İlgili konular