patricio fuenmayor
2017-Dec-16 16:30 UTC
[R-es] Estimada comunidad, queria pedirles ayuda porque realmente llevo muchas horas tratando de hacer algo que debe ser simple, y por eso mismo ya me esta frustrando ...
Hola. Lo que tienes que hacer es calcular el numero total de muertes por año primero y luego este resultado adjuntarlo a tu data.table de causas de muerte. NO te salen los resultados porque al momento que haces todo en solo grupo de operaciones y aplicas un FILTRO esto afecta en los totales. dt <- data.table(readxl::read_xlsx("d:/cdm.xlsx","dat")) dt año cdm muertes 1: 2015 A 4 2: 2015 B 3 3: 2015 D 1 4: 2015 F 8 5: 2016 A 9 6: 2016 B 5 7: 2016 C 3 8: 2017 C 4 9: 2017 B 1 10: 2017 G 2 11: 2017 A 7 dt[,.(total=sum(muertes)),by=año][dt[,.(muertes_s=sum(muertes)),by=.(año,cdm)],on=.(año)][,.(año,cdm,pct=muertes_s/total)] saludos [[alternative HTML version deleted]]