datosinflacion <- datosinflacion %>%t()colnames(datosinflacion) <- datosinflacion[1,]datosinflacion <- datosinflacion[-1,]# datosinflacion <- datosinflacion %>% as.data.frame.numeric(check.names = T)# Convertir la matriz en un data framedatosinflacion <-as.data.frame(datosinflacion)# Si los años no están incluidos como una columna y deseas añadirlos desde el nombre de las filasdatosinflacion$"Año"<-rownames(datosinflacion)# Cambiar el orden de las columnas si es necesario para que 'Year' sea la primera columnadatosinflacion <- datosinflacion[, c(ncol(datosinflacion), 1:(ncol(datosinflacion)-1))]datosinflacion %>%select(c("Año","Costa Rica","Chile","Colombia","Mexico")) %>%xtable(caption ="Inflación Anual") %>%print(type ="latex", include.rownames =FALSE)
# Instalar el paquete writexl si aún no lo tienes# install.packages("writexl")# Cargar el paquetelibrary(writexl)# Exportar el DataFrame a un archivo Exceldatosinflacion %>%select(c("Año","Costa Rica","Chile","Colombia","Mexico")) %>%write_xlsx("display_datosinflacion.xlsx")
# Costa Rica, Chile, Colombia y Méxicoinflacion_long <- datosinflacion %>%select(c("Año","Costa Rica","Chile","Colombia","Mexico")) %>%pivot_longer(cols =-1, names_to ="País",values_to ="Inflación" )inflacion_long <- inflacion_long %>%mutate( País =as.factor(País), Inflación =as.numeric(Inflación), Año =as.numeric(Año))# GRAFICO DE LINEA# Crear el gráfico de líneas(infPlot2 <- inflacion_long %>%ggplot(aes(x = Año, y = Inflación, color = País)) +geom_line(size =1) +labs(x ="Año", y ="Inflacion (%)", color ="Pais", caption ="Fuente: Elaboración propia con datos de Fondo Monetario Internacional")+scale_x_discrete(limits=seq(2014, 2029, 2)) +scale_y_discrete(limits =seq(round(min(inflacion_long$Inflación)),round(max(inflacion_long$Inflación)),2))+# scale_color_viridis(discrete = TRUE, option = "H") +# scale_fill_viridis(discrete = TRUE) +scale_color_brewer(palette ="Spectral")+theme(legend.position ="right")+labs(title ="Inflación anual"))
# Cargar datos de Colombiatpm_colombia <-read_excel("TPM_Colombia.xlsx", skip =7)# Cargar datos de Chiletpm_chile <-read_excel("TPM_Chile.xlsx")# Cargar datos de Costa Ricatpm_costa_rica <- tpm_anual# Cargar datos de Méxicotpm_mexico <-read_excel("TPM_Mexico.xlsx")
tpm_colombia <-rename(tpm_colombia, Año =`Fecha (dd/mm/aaaa)`, TPM =`Tasa de intervención de política monetaria (%)`)tpm_chile <-rename(tpm_chile, Año =`Período`, TPM =`Valor (Porcentaje)`)tpm_costa_rica <-rename(tpm_costa_rica, Año =`Año`, TPM =`TPM`)tpm_mexico <-rename(tpm_mexico, Año =`Fecha`, TPM =`Valor (Porcentaje)`)
# Limpiar datos de Méxicotpm_mexico$TPM <-gsub("%", "", tpm_mexico$TPM) # Eliminar el signo de porcentajetpm_mexico$TPM <-gsub(",", ".", tpm_mexico$TPM) # Cambiar comas por puntostpm_mexico$TPM <-as.numeric(tpm_mexico$TPM) # Convertir a numérico# Limpiar datos de Chiletpm_chile$TPM <-gsub(",", ".", tpm_chile$TPM) # Cambiar comas por puntostpm_chile$TPM <-as.numeric(tpm_chile$TPM) # Convertir a numéricotpm_colombia$País <-"Colombia"tpm_chile$País <-"Chile"tpm_costa_rica$País <-"Costa Rica"tpm_mexico$País <-"México"# Convertir la columna TPM a numérico en todos los DataFramestpm_colombia$TPM <-as.numeric(tpm_colombia$TPM)tpm_chile$TPM <-as.numeric(tpm_chile$TPM)tpm_costa_rica$TPM <-as.numeric(tpm_costa_rica$TPM)tpm_mexico$TPM <-as.numeric(tpm_mexico$TPM)tpm_colombia <- tpm_colombia %>% dplyr::select("Año", "TPM")tpm_chile <- tpm_chile %>% dplyr::select("Año", "TPM")tpm_costa_rica <- tpm_costa_rica %>% dplyr::select("Año", "TPM")tpm_mexico <- tpm_mexico %>% dplyr::select("Año", "TPM")
# Función para calcular el promedio anual de TPMcalcular_promedio_anual_tpm <-function(data_frame) { data_frame %>%mutate(Año =year(Año), # Asegúrate de que Año es una fecha y conviértelo al añoTPM =as.numeric(TPM)) %>%# Convierte TPM a numérico si aún no lo estágroup_by(Año) %>%summarise(TPM =mean(TPM, na.rm =TRUE)) # Calcula el promedio, ignorando NA}tpm_colombia <- tpm_colombia %>%calcular_promedio_anual_tpm() %>%arrange()tpm_chile <- tpm_chile %>%calcular_promedio_anual_tpm() %>%arrange()# tpm_costa_rica <- tpm_costa_rica %>% calcular_promedio_anual_tpm()tpm_mexico <- tpm_mexico %>%calcular_promedio_anual_tpm() %>%arrange()
datosvariados <-read_csv("datosvariados.csv", col_types =cols(#`Subject Descriptor` = col_skip(), ISO =col_skip(),Units =col_skip(), Scale =col_skip(), `Estimates Start After`=col_skip(),`Country/Series-specific Notes`=col_skip()), locale =locale(encoding ="ISO-8859-1")) #%>% clean_names()# Gross domestic product based on purchasing-power-parity (PPP) share of world total# Gross domestic product, constant prices # Current account balance datospib <- datosvariados %>%filter(str_detect(`Subject Descriptor`, "Gross domestic product, constant prices"))datospib <- datospib %>%t()colnames(datospib) <- datospib[1,]datospib <- datospib[-1,]# datosinflacion <- datosinflacion %>% as.data.frame.numeric(check.names = T)# Convertir la matriz en un data framedatospib <-as.data.frame(datospib)# Si los años no están incluidos como una columna y deseas añadirlos desde el nombre de las filasdatospib$"Año"<-rownames(datospib)# Cambiar el orden de las columnas si es necesario para que 'Year' sea la primera columnadatospib <- datospib[-1, c(ncol(datospib), 1:(ncol(datospib)-1))]# datospib %>% # select(c("Año","Costa Rica","Chile","Colombia","Mexico")) %>% # xtable(caption = "Inflación Anual") %>% print(type = "latex", include.rownames = FALSE)# Exportar el DataFrame a un archivo Exceldatospib %>%write_xlsx("display_PIB_PPP.xlsx")
Visualizar el PIB
# Costa Rica, Chile, Colombia y Méxicopib_long <- datospib %>%select(c("Año","Costa Rica","Chile","Colombia","Mexico")) %>%pivot_longer(cols =-1, names_to ="País",values_to ="PIB" )pib_long <- pib_long %>%mutate( País =as.factor(País),PIB =as.numeric(PIB), Año =as.numeric(Año))
# GRAFICO DE LINEA# Crear el gráfico de líneas(pibPlot <- pib_long %>%ggplot(aes(x = Año, y = PIB, color = País)) +geom_line(size =1) +labs(x ="Año", y ="PIB", color ="Pais", caption ="Fuente: Elaboración propia con datos de Fondo Monetario Internacional")+scale_x_discrete(limits=seq(2014, 2029, 2)) +scale_y_discrete(limits =seq(round(min(pib_long$PIB)),round(max(pib_long$PIB)),2))+# scale_color_viridis(discrete = TRUE, option = "H") +# scale_fill_viridis(discrete = TRUE) +scale_color_brewer(palette ="Spectral")+theme(legend.position ="right")+labs(title ="PIB anual"))
PIB_filtrado <- pib_long[pib_long$Año >=2014,]PIB_filtrado <- PIB_filtrado[PIB_filtrado$Año <=2024,]# Crear los gráficos para cada país como subgráficos
p1 <-ggplot(data = inflacion_filtrada[inflacion_filtrada$País =="Chile",], aes(x = Año, y = Inflación, group =1)) +geom_line(linetype ="solid", size =1, color ="red", alpha = .5) +geom_line(data = PIB_filtrado[PIB_filtrado$País =="Chile" ,], aes(y = PIB), linetype ="dotted", size =1, color ="blue", alpha = .5) +labs(title ="Chile", x ="Año", y ="%") +scale_x_discrete(limits=seq(2014, 2024, 2)) +theme_cowplot()p3 <-ggplot(data = inflacion_filtrada[inflacion_filtrada$País =="Colombia",], aes(x = Año, y = Inflación, group =1)) +geom_line(linetype ="solid", size =1, color ="red", alpha = .5) +geom_line(data = PIB_filtrado[PIB_filtrado$País =="Colombia",], aes(y = PIB), linetype ="dotted", size =1, color ="blue", alpha = .5) +labs(title ="Colombia", x ="Año", y ="%") +scale_x_discrete(limits=seq(2014, 2024, 2)) +theme_cowplot()p2 <-ggplot(data = inflacion_filtrada[inflacion_filtrada$País =="Costa Rica",], aes(x = Año, y = Inflación, group =1)) +geom_line(linetype ="solid", size =1, color ="red", alpha = .5) +geom_line(data = PIB_filtrado[PIB_filtrado$País =="Costa Rica",], aes(y = PIB), linetype ="dotted", size =1, color ="blue", alpha = .5) +labs(title ="Costa Rica", x ="Año", y ="%") +scale_x_discrete(limits=seq(2014, 2024, 2)) +theme_cowplot()p4 <-ggplot(data = inflacion_filtrada[inflacion_filtrada$País =="Mexico",], aes(x = Año, y = Inflación, group =1)) +geom_line(linetype ="solid", size =1, color ="red", alpha = .5) +geom_line(data = PIB_filtrado[PIB_filtrado$País =="Mexico",], aes(y = PIB), linetype ="dotted", size =1, color ="blue", alpha = .5) +labs(title ="México", x ="Año", y ="%") +scale_x_discrete(limits=seq(2014, 2024, 2)) +theme_cowplot()# Combinar los gráficos en una matriz 2x2(infPIBInternacional <-grid.arrange(p1, p2, p3, p4, nrow =2, ncol =2,top ="Inflación y PIB anual",bottom ="Inflación en rojo, PIB en azul") )