2010-07-11 7 views
8

Sono nuovo nello stackoverflow e abbastanza nuovo in R ma ho cercato a lungo e con difficoltà e non riesco a trovare una risposta alla seguente domanda.Come posso modificare una serie storica (XTS o ZOO) in R?

Ho un numero di file di dati che sono la temperatura rispetto a una serie storica. Sto importando il CSV come oggetto ZOO e poi convertendolo in XTS. Un file corretto si presenta così, con letture ogni ora e la mezz'ora:

>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 

Ma il valore di tempo su alcuni sono un po 'fuori - cioè 23:59:00 Non 00:00:00, o 00: 29:00 invece di 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 

voglio correggere questi serie temporali, come la differenza minuto non è importante per la mia analisi e in ultima analisi, io voglio unire i file, in modo che ogni timeseries deve avere la stessa tempistica.

voglio un comando che può solo dire "spostare la serie temporale in avanti di 1 minuto, ma non alterano la colonna di dati (ad es S_21). Ho avuto un po 'di fortuna con gsub() sui cambiamenti più facili, e contemplato un . regex complessa di modificare i dati prima che viene convertito in zoo o XTS ho letto su lag() e diff() ma sembrano spostare i valori dei dati relativi alla serie storica;. per favore correggetemi se sbaglio

Qualsiasi aiuto risolvere questo problema sarebbe molto apprezzato

risposta

10

Prova

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

che aggiungerà un minuto all'indice del tempo. È quindi possibile utilizzare merge() con l'allineamento degli indicatori di data e ora.

Più in generale, le vignette del pacchetto zoo saranno utili anche per te.