[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