juan manuel dias
2021-Aug-05 20:24 UTC
[R-es] cálculo porcentajes por categorías para total casos por año.
Hola Carlos, muchas gracias! Voy a probar con este código que me pasaste! También encontré esta forma de hacerlo que copio más abajo! Saludos, Juan. base_porcentajes<-suaci_reclamos %>% group_by(anio, TIPO_PRESTACION) %>% dplyr::summarise(reclamos = sum(n_reclamos)) %>% transmute(TIPO_PRESTACION, porc_categorias =(reclamos/sum(reclamos))) El jue, 5 ago 2021 a las 15:56, Carlos Ortega (<cof en qualityexcellence.es>) escribió:> Hola, > > Esta es una forma... > > #-------------- > > library(dplyr) > > library(data.table) > > > > datin <- fread('suaci_reclamos.csv') > > > > datin %>% > + group_by(anio) %>% > + mutate(tot_year = sum(n_reclamos)) %>% > + group_by(anio, TIPO_PRESTACION) %>% > + mutate(tot_pres = sum(n_reclamos) ) %>% > + mutate(por_pres_year = (tot_pres/tot_year)*100) %>% > + select(-tot_year, -tot_pres) %>% > + arrange(anio, TIPO_PRESTACION) > # A tibble: 15 × 6 > # Groups: anio, TIPO_PRESTACION [15] > V1 TIPO_PRESTACION anio n_reclamos miles_reclamos por_pres_year > <int> <chr> <int> <int> <dbl> <dbl> > 1 1 DENUNCIA 2013 35086 35.1 5.49 > 2 4 QUEJA 2013 12476 12.5 1.95 > 3 7 RECLAMO 2013 225296 225. 35.2 > 4 10 SOLICITUD 2013 209066 209. 32.7 > 5 13 TRAMITE 2013 157633 158. 24.6 > 6 2 DENUNCIA 2014 38959 39.0 7.53 > 7 5 QUEJA 2014 9544 9.54 1.84 > 8 8 RECLAMO 2014 154987 155. 29.9 > 9 11 SOLICITUD 2014 143330 143. 27.7 > 10 14 TRAMITE 2014 170888 171. 33.0 > 11 3 DENUNCIA 2015 94532 94.5 11.3 > 12 6 QUEJA 2015 12216 12.2 1.46 > 13 9 RECLAMO 2015 230389 230. 27.5 > 14 12 SOLICITUD 2015 128488 128. 15.3 > 15 15 TRAMITE 2015 372677 373. 44.5 > #-------------- > > Gracias, > Carlos Ortega > www.qualityexcellence.es > > El jue, 5 ago 2021 a las 17:28, juan manuel dias (<juamadias en gmail.com>) > escribió: > >> Hola Estimados/as >> >> Estoy necesitando calcular los porcentajes para cada categoría de la >> variable "tipo de prestación" sobre el total de casos de todas las >> categorías para cada año (anio). >> >> Con este código que pego abajo puedo hacer los porcentajes de cada >> categoría pero sobre el total de todos los casos. >> >> base_ancha<-suaci_reclamos %>% >> group_by(anio,TIPO_PRESTACION) %>% >> dplyr::summarise(cantidad_reclamos=sum(n_reclamos)) %>% >> mutate(porcentaje_tpres=round(cantidad_reclamos/sum(cantidad_reclamos)*100,digits=4)) >> %>% >> ungroup() >> >> Adjunto la base original sobre la que estoy trabajando (suaci_reclamos) y >> el resultado al que llego corriendo el código de arriba (base_ancha)...y un >> excel donde en la columna "Necesito_esto" figura el cálculo que necesito. >> >> Lo intenté de varias formas pero no logro que quede así! >> >> Muchas gracias! >> >> Saludos, Juan. >> >> >> >> _______________________________________________ >> R-help-es mailing list >> R-help-es en r-project.org >> https://stat.ethz.ch/mailman/listinfo/r-help-es >> > > > -- > Saludos, > Carlos Ortega > www.qualityexcellence.es >[[alternative HTML version deleted]]