library(tidyverse)
library(ggrepel)
library(scales)
library(formattable)
library(kableExtra)
colores<- c('#a6cee3','#1f78b4','#b2df8a','#33a02c','#fb9a99','#e31a1c','#fdbf6f','#ff7f00','#cab2d6','#6a3d9a','#ffff99','#b15928')
temp <- tempfile()
download.file("https://www.indec.gob.ar/ftp/cuadros/menusuperior/engho/engho2018_gastos.zip",temp)
gastos <- read.table(unzip(temp, "engho2018_gastos.txt"),header = T, sep = "|", dec=".",fileEncoding = "utf-8" )
unlink(temp)
temp <- tempfile()
download.file("https://www.indec.gob.ar/ftp/cuadros/menusuperior/engho/engho2018_hogares.zip",temp)
hogar <- read.table(unzip(temp, "engho2018_hogares.txt"),header = T, sep = "|", dec=".",fileEncoding = "utf-8" )
unlink(temp)
temp <- tempfile()
download.file("https://www.indec.gob.ar/ftp/cuadros/menusuperior/engho/engho2018_personas.zip",temp)
personas <- read.table(unzip(temp, "engho2018_personas.txt"),header = T, sep = "|", dec=".",fileEncoding = "utf-8" )
unlink(temp)
temp <- tempfile()
download.file("https://www.indec.gob.ar/ftp/cuadros/menusuperior/engho/engho2018_articulos.zip",temp)
articulos <- read.table(unzip(temp,"engho2018_articulos.txt" ),header = T, sep = "|", dec=".",fileEncoding = "utf-8" )
unlink(temp)
articulos$division_desc[articulos$division_desc=="VIVIENDA, AGUA, ELECTRICIDAD, GAS Y OTROS COMBUSTIBLES"]<- "VIVIENDA, AGUA, ELECTRICIDAD, \n GAS Y OTROS COMBUSTIBLES"
articulos$division_desc[articulos$division_desc=="EQUIPAMIENTO Y MANTENIMIENTO DEL HOGAR" ] <- "EQUIPAMIENTO Y MANTENIMIENTO \n DEL HOGAR"
articulos$division_desc[articulos$division_desc=="ALIMENTOS Y BEBIDAS NO ALCOHÓLICAS" ] <- "ALIMENTOS Y BEBIDAS \n NO ALCOHÓLICAS"
hogarcor<- hogar %>% filter(provincia==18)
gastocor <- gastos %>% filter(provincia==18)
personacor<- personas %>% filter(provincia==18)
gastopercor<- right_join(personacor, gastocor)
gastopercor<- gastopercor %>% filter(provincia==18) %>% filter(!is.na(cp03))
gastopercor <- gastopercor %>% mutate( edad=case_when(cp03>=18 & cp03<29 ~ "18 a 28",
cp03>=29 & cp03<40 ~ "29 a 39",
cp03>=40 & cp03<51 ~ "40 a 50",
cp03>=51 & cp03<62 ~ "51 a 61",
cp03>=61 ~ "61+"))
gastopercormas<- gastopercor %>% filter(cp03>=18)
gastopercormenos<- gastopercor %>% filter(cp03<18)
divisionesgas<- articulos %>% select(division, division_desc) %>% unique()
divisioneseng<- articulos %>% select(division, division_desc) %>% separate(division, into=c("a", "b"), sep="A")
divisioneseng<- unique(divisioneseng)
divisioneseng<- divisioneseng %>% rename(division="b") %>% select(-"a")
divisioneseng$division<- as.numeric(divisioneseng$division)
Base de Hogares de la ENGHO
gastohog<- hogarcor %>% select(id, pondera, qinpch_p, gastot) %>% bind_cols(hogarcor[,73:84] )
gastohog<- gastohog %>% pivot_longer(-c(id,pondera, qinpch_p, gastot))
divisiones<-data.frame(name=c(unique(gastohog$name)))
divisiones <- divisiones %>% bind_cols(division=c(seq(1,12, by=1)))
gastohog<-left_join(gastohog, divisiones)
gastohog<- left_join(gastohog,divisioneseng)
Gastocorr<- gastohog %>% group_by(division_desc) %>% summarise("Porcentaje en el total de Gastos"=formattable::percent(sum(value %*% pondera)/sum( gastot %*% pondera )), sum(value%*%pondera))
Gastocorr<- Gastocorr %>% arrange(`Porcentaje en el total de Gastos`)
Gastocorr$division_desc<- factor(Gastocorr$division_desc, levels = Gastocorr$division_desc)
gastoxquin<- gastohog %>% group_by(qinpch_p) %>% mutate(gxquinpcp=sum(value %*% pondera)) %>% ungroup()
GastoPorDiv<- gastoxquin %>% group_by(qinpch_p, division_desc) %>% summarise("Porcentaje en el total de Gastos por Quintil"=formattable::percent(sum(value %*%pondera)/gxquinpcp))
GastoPorDiv<- GastoPorDiv %>% distinct( qinpch_p, division_desc, .keep_all = T)
GastoPorDiv<- GastoPorDiv %>% arrange(`Porcentaje en el total de Gastos por Quintil`)
Gráficos estáticos
Composición de los gastos en el total del aglomerado de Corrientes.
grafico1<- Gastocorr %>% ggplot(mapping = aes(x=division_desc,y= `Porcentaje en el total de Gastos`, fill=division_desc, label=`Porcentaje en el total de Gastos`)) + geom_segment(aes(x=division_desc, xend=division_desc, y =0, yend=`Porcentaje en el total de Gastos`, color=colores), show.legend = F, size=1.5)+ geom_point(color="#377eb8", size=3, alpha=1, show.legend = F) + geom_text(show.legend = F, position =position_nudge(y=0.055))+ labs(fill="", title ="Composición de gastos en Corrientes", subtitle = "Encuesta Nacional de Gastos de los Hogares 2017-2018", caption = "Fuente: ENGHO-INDEC")+ xlab("") + ylab("Porcentaje") + ggthemes::theme_base()+ theme(text =element_text(size= 10) ,axis.title = element_text(), legend.position = ("right") , strip.background = element_rect(fill = "WHITE", colour = "BLACK"), axis.text.x = element_blank(), panel.background = element_blank(), panel.grid.major.x = element_blank(), title = element_text(size = 10)) + scale_fill_manual(values = colores) +ylim(c(0,0.35))+ coord_flip()
grafico1

Composición de los gastos en el total del aglomerado de Corrientes dividido por quintil de IPCH.
grafico2<- GastoPorDiv %>% ggplot(mapping = aes(qinpch_p, `Porcentaje en el total de Gastos por Quintil`, fill=division_desc, label=`Porcentaje en el total de Gastos por Quintil`)) + geom_col(show.legend = T) + labs(fill="", title ="Composición de gastos por quintil", subtitle = "Encuesta Nacional de Gastos de los Hogares 2017-2018", caption = "Fuente: ENGHO-INDEC")+ xlab("Quintil de IPCH (Corrientes)") + ylab("Porcentaje") + ggthemes::theme_base()+ theme(text =element_text(size= 10) , legend.position = ("right") , strip.background = element_rect(fill = "WHITE", colour = "BLACK"), panel.background = element_blank(), panel.grid.major.x = element_blank(), title = element_text(size = 10)) + scale_fill_manual(values = colores) + coord_flip()
grafico2

Gráficos interactivos
grafico3<- grafico2 + labs(fill="", title ="Composición de gastos por quintil en Corrientes \n ENGHO 2017-2018 - INDEC")
grafico4<- Gastocorr %>% ggplot(mapping = aes(x=division_desc,y= `Porcentaje en el total de Gastos`, fill=division_desc, label=`Porcentaje en el total de Gastos`)) + geom_segment(aes(x=division_desc, xend=division_desc, y =0, yend=`Porcentaje en el total de Gastos`, color=colores), show.legend = F, size=1.5)+ geom_point( fill="BLACK",size=3, alpha=1, show.legend = F) + labs(fill="", title ="Composición de gastos en Corrientes \n ENGHO 2017-2018 (INDEC)") + xlab("") + ylab("Porcentaje") + ggthemes::theme_base()+ theme(text =element_text(size= 10) ,axis.title = element_text(), legend.position = ("right") , strip.background = element_rect(fill = "WHITE", colour = "BLACK"), axis.text.x = element_blank(), panel.background = element_blank(), panel.grid.major.x = element_blank(), title = element_text(size = 10)) + scale_fill_manual(values = colores) +ylim(c(0,0.40))+ coord_flip()
grafico3<- plotly:: ggplotly(grafico3,tooltip = c("fill","y"))
grafico4<- plotly::ggplotly(grafico4, tooltip=c("y"))
Composición de los gastos en el total del aglomerado de Corrientes.
plotly::hide_legend(grafico3)
Composición de los gastos en el total del aglomerado de Corrientes dividido por quintil de IPCH.
plotly::hide_legend(grafico4)
Base Gastos
gastocorforma<- gastocor %>% filter(!is.na(forma_pago))
modopago<- gastocorforma %>% group_by(division) %>% mutate(ponderadiv=sum(pondera)) %>% ungroup()
modopago<- modopago %>% group_by(division,forma_pago) %>% summarise(sum(pondera),ponderadiv)
modopago <- unique(modopago)
modopago<- modopago %>% mutate(porcentaje=percent(`sum(pondera)`/ponderadiv))
formapago<- data.frame(forma_pago=seq(1,9, by=1), forma_p=c("Contado", "Tarjeta Débito", "Tarjeta Crédito","A crédito \n (libreta, fiado,etc)", "Recibido o retirado \n de su trabajo", "Tarjeta prepaga", "Transf. Bcria, \n HomeBaking, Deb. Aut.", "Producción Propia", "Otros" ))
modopago<- left_join(modopago, divisionesgas)
modopago<- left_join(modopago,formapago)
tabla1<- modopago[,c(5,6,7)]
tabla1 <- tabla1 %>% relocate(division_desc, before=forma_p) %>% rename(Division=division_desc, "Forma de pago"= forma_p, Porcentaje=porcentaje)
Gráficos estáticos.
Modo de adquisición por división de los gastos.
modopago<- gastocor %>% filter(!is.na(modo_adq)) %>% group_by(division) %>% mutate(ponderadiv=sum(pondera)) %>% ungroup()
modopago<- modopago %>% group_by(division,modo_adq) %>% summarise(sum(pondera),ponderadiv)
modopago <- unique(modopago)
modopago<- modopago %>% mutate(porcentaje=percent(`sum(pondera)`/ponderadiv))
modoadq<- data.frame(modo_adq=c(1,2,3), modoad=c("En el negocio", "Internet", "Teléfono") )
modopago<- left_join(modopago, divisionesgas)
modopago<- left_join(modopago,modoadq)
grafico7<- modopago %>% ggplot(mapping=aes(x=division_desc, y=porcentaje, fill=modoad)) + geom_col()+ labs(fill="", title ="Modo de adquisición por división de gastos", subtitle = "Encuesta Nacional de Gastos de los Hogares 2017-2018", caption = "Fuente: ENGHO-INDEC")+ xlab("") + ylab("Porcentaje") + ggthemes::theme_base() +theme(text =element_text(size= 10) , legend.position = ("right") , strip.background = element_rect(fill = "WHITE", colour = "BLACK"), panel.background = element_blank(), panel.grid.major.x = element_blank(), title = element_text(size = 10)) + scale_fill_manual(values = colores) + coord_flip()
grafico7

Gráficos dinámicos
Modo de adquisición por división de los gastos.
grafico8<- grafico7 + labs(fill="", title ="Modo de adquisición por división de gastos \n ENGHO 2017-2018 - INDEC")
grafico8<- plotly::ggplotly(grafico8, tooltip = c("modoad","y"))
plotly::hide_legend(grafico8)