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

lbianchi lbianchi en zoho.com
Lun Sep 1 22:17:30 CEST 2014


¡Excelente Daniel!

Es justo lo que estaba buscando, me imaginé que debería existir algo así, pero no conocía esa función.

Muchas gracias,

Lucas.

---- Activado lun, 01 sep 2014 12:25:35 -0700 daniel<daniel319 en gmail.com> escribió ---- 


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: 
> 
> &gt; 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 
> &gt; aggregate(tabla$eventos, list(tabla$fecha), sum) 
> 
> # otra forma 
> &gt; library(plyr) 
> &gt; 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]] 
 
_______________________________________________ 
R-help-es mailing list 
R-help-es en r-project.org 
https://stat.ethz.ch/mailman/listinfo/r-help-es 





	[[alternative HTML version deleted]]



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