Domanda

Ho un oggetto Zoo in R che ha dati quotidiani e manca i fine settimana.Quando provo a eseguire alcune funzioni (ad esempio ar()) sull'oggetto ottengo l'errore:

mkt.ar <- ar(zoo_object)
Error in na.fail.default(as.ts(x)) : missing values in object
.

Se lo faccio:

mkt.ar <- ar(zoo_object, na.action=na.omit)
Error in na.omit.ts(as.ts(x)) : time series contains internal NAs
.

Questo ha senso da quando Zoo cerca di convertire le cose in TS, i fine settimana sono intrinsecamente mancanti.Oltre a convertire le cose in un vettore usando coredata(zoo_object) e eseguire generatori ar() su questo, c'è un modo per raccontare a r per saltare i dati mancanti?

Grazie

È stato utile?

Soluzione

Raccolgo che ogni giorno è rappresentato nei tuoi dati compresi i giorni feriali e i fine settimana, ma i giorni per i quali non sono presenti dati sono generatori di generazione (al contrario di non essere presenti a tutti).In futuro fornire alcuni dati di prova per una migliore chiarezza.

A parte la tua soluzione, se hai abbastanza dati è possibile eseguire un NA su Dati settimanali solo estraendo l'ultimo valore non mancante o prima del venerdì:

library(zoo)

# test data
library(chron) # is.weekend
z <- zoo(100:130, as.Date("2000-01-01") + 0:30)
z[is.weekend(time(z))] <- NA

# extract Fridays
zfri <- na.locf(z)[format(time(z), "%w") == 5]
.

(Se non ci sono venerdì mancanti, può essere abbreviato sostituendo ar con na.locf(z).)

Un'altra possibilità è usare 1, 2, ... per i tempi, ma dai loro i nomi nel qual caso potresti sempre scoprire quale data appartiene a verificare il nome del suo tempo.

z1 <- na.omit(z)
time(z1) <- setNames(seq_along(z1), time(z1))
.

Altri suggerimenti

Metodo più semplice sarà convertire l'oggetto Zoo in Data.Frame Object by Ad esempio (z1 è Zoo Object):

dz1<-data.frame(na.omit(z1))
.

Quindi convertilo in oggetto serie temporale.

ts(dz1, frequency=5)
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top