Ho una serie storica irregolare (xts
in R
) a cui voglio applicare una finestra temporale. Ad esempio, dato una serie storica come il seguente, voglio calcolare le cose come il numero osservazioni ci sono in ogni finestra discreta di 3 ore, a partire dalle 2009-09-22 00:00:00
:Analisi regolari su serie temporali irregolari
library(lubridate)
s <- xts(c("OK", "Fail", "Service", "OK", "Service", "OK"),
ymd_hms(c("2009-09-22 07:43:30", "2009-10-01 03:50:30",
"2009-10-01 08:45:00", "2009-10-01 09:48:15",
"2009-11-11 10:30:30", "2009-11-11 11:12:45")))
che a quanto pare non posso usare period.apply()
o split()
per farlo, perché quelli ometteranno i periodi senza osservazioni e non posso dargli un tempo di inizio.
mio output desiderato per il semplice problema di conteggio (anche se, naturalmente, i miei veri compiti sono più complicate con ogni segmento!) Sarebbe qualcosa di simile se aggregati 3 giorni alla volta:
2009-09-22 1
2009-09-25 0
2009-09-28 0
2009-10-01 3
2009-10-04 0
2009-10-07 0
2009-10-10 0
2009-10-13 0
2009-10-16 0
2009-10-19 0
2009-10-22 0
2009-10-25 0
2009-10-28 0
2009-10-31 0
2009-11-03 0
2009-11-06 0
2009-11-09 2
Grazie per qualsiasi consiglio.
Questo non fa quello che sto cercando - lasciatemi aggiungere ulteriori dettagli alla domanda originale. –
Forse l'idea di 'merge()' è ciò che mi serve comunque - per creare una sequenza con i miei endpoint di intervallo desiderati, quindi unirli alla sequenza? –
@KenWilliams: sei sulla strada giusta. Ho aggiornato la mia risposta ... –