2011-09-14 7 views
2

J'ai une série temporelle irrégulière avec laquelle je travaille et que je voudrais convertir en une série régulière, mais plutôt que le comportement habituel "données manquantes" répondues dans d'autres questions, j'ai besoin d'avoir l'observation à chaque fois Intervalle espacé être l'observation la plus récente, indépendamment de combien de temps il était. J'ai écrit une fonction pour cela, mais avec deux boucles, c'est incroyablement lent.En R, comment convertir des séries chronologiques irrégulières en séries régulières sans NA?

À titre d'exemple, au lieu d'avoir

> x <- zoo(c(1, 3, 6), c(1981, 1984, 1985)) 
> as.ts(x) 
Time Series: 
Start = 1981 
End = 1985 
Frequency = 1 
[1] 1 NA NA 3 6 

Je voudrais un résultat comme celui-ci:

> as.ts(x) 
Time Series: 
Start = 1981 
End = 1985 
Frequency = 1 
[1] 1 1 1 3 6  

Répondre

4

Vous pouvez utiliser na.locf du package zoo.

y <- as.ts(x) 
y <- na.locf(y) 
y 
# Time Series: 
# Start = 1981 
# End = 1985 
# Frequency = 1 
# [1] 1 1 1 3 6 
+0

Parfait, merci. – Dennis

Questions connexes