[R-es] Extraer datos mensuales de una serie temporal
Oscar Perpiñan Lamigueiro
oscar.perpinan en upm.es
Mie Jul 13 16:51:23 CEST 2011
Hola,
Como propone Olivier, usando zoo para extraer los registros que
corresponden al verano necesitas un par de líneas adicionales:
##Si quieres incorporar la hora dentro del "index" de zoo tendrás que
##usar clases POSIXct o chron
tt=as.POSIXct(paste(datos$FECHA,
datos$H_SOLAR), format="%y/%m/%d %H:%M:%S")
datZoo <- zoo(datos[,-c(1,2)], tt)
##Defino una función sencilla para extraer el número de mes de una clase
##POSIXct
##Simplifiquemos asumiendo que Junio, Julio y Agosto son los meses de
##verano.
month <- function (x) as.numeric(format(x, "%m"))
veranoIdx <- which(month(tt) %in% 6:8)
veranoZoo <- datZoo[veranoIdx]
veranoZoo
Saludos.
Oscar
El Wed,
13 Jul 2011 13:39:32 +0200 Olivier Nuñez <onunez en iberstat.es> escribió:
> Aquí un ejemplo de extracción con tus datos y paquete zoo:
>
> > require(zoo)
> > T=as.Date(datos$FECHA, "%y/%m/%d")
> > serie=zoo(datos[,-c(1,2)],T)
> > serie
> DIR_M DIR_S VEL_M VEL_S VEL_X U V
> TEMP_M HR BAT PRECIP RAD UVA UVB FOG GRID
> 2000-01-01 203.5 6.6 2.0 0.5 -99.9 -99.9 -99.9 6.0 -99.9
> 9.0 -99.9 -99.9 -99.9 -99.9 -99.9 -99.9
> 2000-01-02 235.5 7.5 1.8 0.5 -99.9 -99.9 -99.9 6.1 -99.9
> 8.9 -99.9 -99.9 -99.9 -99.9 -99.9 -99.9
> 2000-01-03 217.4 6.1 1.4 0.5 -99.9 -99.9 -99.9 7.0 -99.9
> 8.9 -99.9 -99.9 -99.9 -99.9 -99.9 -99.9
> 2000-01-04 202.5 8.6 1.8 0.5 -99.9 -99.9 -99.9 6.4 -99.9
> 8.8 -99.9 -99.9 -99.9 -99.9 -99.9 -99.9
> 2000-01-05 198.5 7.1 1.8 0.5 -99.9 -99.9 -99.9 5.4 -99.9
> 8.8 -99.9 -99.9 -99.9 -99.9 -99.9 -99.9
> 2000-01-06 212.1 6.9 1.8 0.5 -99.9 -99.9 -99.9 5.5 -99.9
> 8.7 -99.9 -99.9 -99.9 -99.9 -99.9 -99.9
> 2000-01-07 204.7 7.1 2.0 0.5 -99.9 -99.9 -99.9 5.4 -99.9
> 8.7 -99.9 -99.9 -99.9 -99.9 -99.9 -99.9
> 2000-01-08 209.7 5.8 1.4 0.5 -99.9 -99.9 -99.9 5.3 -99.9
> 8.7 -99.9 -99.9 -99.9 -99.9 -99.9 -99.9
> 2000-01-09 237.8 6.9 1.9 0.5 -99.9 -99.9 -99.9 7.3 -99.9
> 8.6 -99.9 -99.9 -99.9 -99.9 -99.9 -99.9
> > window(serie, start = "2000-01-04", end = "2000-01-06")
> DIR_M DIR_S VEL_M VEL_S VEL_X U V
> TEMP_M HR BAT PRECIP RAD UVA UVB FOG GRID
> 2000-01-04 202.5 8.6 1.8 0.5 -99.9 -99.9 -99.9 6.4 -99.9
> 8.8 -99.9 -99.9 -99.9 -99.9 -99.9 -99.9
> 2000-01-05 198.5 7.1 1.8 0.5 -99.9 -99.9 -99.9 5.4 -99.9
> 8.8 -99.9 -99.9 -99.9 -99.9 -99.9 -99.9
> 2000-01-06 212.1 6.9 1.8 0.5 -99.9 -99.9 -99.9 5.5 -99.9
> 8.7 -99.9 -99.9 -99.9 -99.9 -99.9 -99.9
>
>
> Un saludo
> --
> ____________________________________
>
> Olivier G. Nuñez
> Email: onunez en iberstat.es
> Tel : +34 663 03 69 09
> Web: http://www.iberstat.es
>
> ____________________________________
>
>
>
Más información sobre la lista de distribución R-help-es