Skip to content
Prev 3163 / 15380 Next

[R-es] sumarizar

Hola,

Te propongo una solución con zoo:

library(zoo)

## construyo un data.frame de ejemplo
EUR.resto <- data.frame(date=seq(as.Date('2009-01-01'),
                        as.Date('2011-12-31'), by='day'),
                        moneda1=rnorm(3*365), moneda2=rnorm(3*365),
                        moneda3=rnorm(3*365))

## y lo convierto a zoo (elimino la columna de fechas de los datos)
EURz <- zoo(EUR.resto[,-1],EUR.resto$date) 

## Primero un "agregado" (por defecto la media) agrupando por mes-año
## usando el método aggregate para objetos zoo

EURyearmon <- aggregate(EURz, by=as.yearmon)

## Para calcular medias sólo mensuales o sólo anuales
## hay que definir primero un par de funciones sencillas

month <- function(x) as.numeric(format(x, "%m"))
year <- function(x) as.numeric(format(x, "%Y"))

## y después pasarlas a aggregate:
EURmon <- aggregate(EURz, by=month)
EURyear <- aggregate(EURz, by=year)

Saludos.

Oscar.

El Thu, 19 Jan 2012 22:26:27 +0100
"Otto F. Wagner" <ofwagner en gmail.com> escribió: