[R-es] Extraer datos mensuales de una serie temporal

Oscar Perpiñan Lamigueiro oscar.perpinan en upm.es
Mie Jul 13 16:57:21 CEST 2011


Aquí plantean algo muy parecido (usando months de base):

http://stackoverflow.com/questions/6356829/subsetting-winter-dez-jan-feb-from-daily-time-series-zoo

Saludos.

Oscar.
El Wed, 13 Jul 2011 16:51:23 +0200
Oscar Perpiñan Lamigueiro <oscar.perpinan en upm.es> escribió:
> 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
> > 
> > ____________________________________
> > 
> > 
> > 
> 
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es



Más información sobre la lista de distribución R-help-es