2011-02-24 21 views
5

Estoy tratando de trazar algunos datos temporales que tienen algunos vacíos en ellos. Puedes ver la trama aquí: http://www.tiikoni.com/tis/view/?id=da222e2.
El problema es que durante los intervalos de tiempo en el TS el gráfico de línea se interpola sobre el espacio y no quiero. Intenté intercalar las lagunas con una bandera de NA, pero hay alrededor de 10000 puntos de datos ordenados a partir de múltiples archivos, lo que hace que sea difícil agregar la bandera de NA manualmente. Si no es posible definir el comportamiento de la trama (función 0, ¿hay alguna otra gráfica que pueda usar, por ejemplo, zoológico, que me permita no tener las líneas trazadas entre las lagunas?Trazado temporal TS y omisión de datos de NA

+2

un código de ejemplo sería útil ... –

+0

Eres Joris derecha. la razón por la que no lo incluí fue porque estaba pensando que podría ser un parámetro en una función de trazado que me faltaba. – cmdel

Respuesta

3

No es difícil intercalar las lagunas con NA el uso de combinar, una vez que se conoce la secuencia de la serie de tiempo una pequeña demostración:.

X <- c(1:20,41:100) 
Y <- rnorm(80) 

plot(X,Y,type="l")  

Z <- seq(min(X),max(X),by=1) # I take 1 is the period. 
newData <- merge(data.frame(X,Y),data.frame(X=Z),all=T) 
plot(newData,type="l") 
2

crear una serie zoológico con una brecha a continuación, defina g que incluye los puntos de tiempo de z más los puntos que faltan en Crear.. una serie zoológica de ancho cero para combinar con z y el diagrama.

library(zoo) 
z <- zoo(rnorm(12), c(1:6, 11:16)) # test data 

g <- seq(start(z), end(z), 1) 
zz <- merge(z, zoo(, g)) 
plot(zz) 
1

Gracias a todos los que contribuyeron a mi consulta.

También publiqué esta pregunta en la lista de correo de ayuda de R y desde allí me respondieron con un procedimiento que trabajó para completar los puntos de datos faltantes con una bandera de NA. El problema era que las marcas de tiempo estaban espaciadas irregularmente, pero aún dentro de ciertos umbrales.

Para fines posteridad esta es la sugerencia de Duncan Murdoch:

Cualquier software va a tener el mismo problema que tenía: ¿cómo definir un hueco? Si la definición es algo simple como "tiempo diferencia mayor que X", entonces será bastante fácil: use diff() para encontrar todas las diferencias de tiempo en los tiempos ordenados, y dondequiera que excedan X, inserte una nueva información señalar con un valor NA. Por ejemplo :

t <- c(1,2,3,7,8,9,11,12,13) 
x <- rnorm(length(T)) 
d <- diff(t) 
gap <- which(d > 1.5) 
if (length(gap)) { 
    newT <- (t[gap] + t[gap+1])/2 
    t <- c(t, newT) 
    x <- c(x, rep(NA, length(newT))) 
    o <- order(t) 
    t <- t[o] 
    x <- x[o] 
} 
plot(t, x, type='l') 
Cuestiones relacionadas