[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