[R-es] Armar clases con diferentes rangos en una tabla de frecuencias

daniel daniel319 en gmail.com
Lun Sep 1 21:25:35 CEST 2014


library(zoo)
?rollapply

¿es eso lo que buscas?

Daniel Merino


El 1 de septiembre de 2014, 16:03, lbianchi <lbianchi en zoho.com> escribió:

> Hola amigos:
>   el problema que se me presenta no creo que resulta muy difícil, pero no
> he logrado resolverlo.
>
> Digamos que tengo una tabla con dos columnas, "Fecha" y "Eventos". En la
> columna Fecha, tengo el año y en la columna Eventos el número de ocurrencia
> de determinado suceso en dicho año.
> Por ejemplo:
>
> > head(tabla)
>   fecha eventos
> 1  1971       1
> 2  1972       8
> 3  1973       1
> 4  1974       7
> 5  1975       7
> 6  1976       2
>
> Puedo tener más de una fila por cada año, por lo que si quiero tener la
> frecuencia de Eventos por año, encontré dos formas de obtenerla:
> # una forma
> > aggregate(tabla$eventos, list(tabla$fecha), sum)
>
> # otra forma
> > library(plyr)
> > ddply(tabla,.(fecha), summarize, freq=sum(eventos))
>
> lo cual me devuelve algo como:
>
>     fecha freq
> 1   1971   18
> 2   1972   31
> 3   1973   22
> 4   1974   36
> 5   1975    7
> 6   1976    2
> 7   1977    2
> 8   1978    9
> ...
>
>
> Hasta aquí todo bien, pero se me presentan dos problemas (o un mismo
> problema dividido en dos partes):
>
> 1- Con el código de arriba obtengo un valor por año, pero yo necesito ese
> valor para diferentes rangos de años, por ejemplo, cada 5, 10, 15, 20 años.
>
> 2- A la vez, el punto de inicio para armar estas clases tendría que ir
> variando. Por ejemplo, agrupando cada 5 años, podría tener el número de
> eventos entre 1970-1974, 1975-1979, 1980-1984, etc. pero también
> necesitaría poder tener el número de eventos en los períodos 1971-1975,
> 1976-1980, 1981-1985, etc.  y luego en los períodos 1972-1976, 1977-1981,
> 1982-1986, etc.
>
> Aquí puse sólo una porción de la tabla, pero el número de años de la tabla
> completa puede ser de alrededor de 500 o tal vez un poco más.
> Todas las opciones que encontré para agrupar los datos son en función de
> valores ya contenidos en la tabla, pero no encontré ninguna manera de
> hacerlo más "dinámico" como lo que yo necesito.
>
> ¿Podría hacer algo con cut()? lo estuve intentando, pero no logré nada.
>
> Cualquier sugerencia, me será de gran ayuda.
>
> Muchas Gracias,
>
> Lucas.
>
>
>
>
>
>
>
>
>
>         [[alternative HTML version deleted]]
>
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



-- 
Daniel

	[[alternative HTML version deleted]]



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