En esta práctica se trabajará con una serie trimestral del Producto Interno Bruto (PIB) de México. El objetivo es transformar la información trimestral en una serie anual mediante el promedio de los cuatro trimestres, calcular la tasa de crecimiento económico y representar gráficamente su comportamiento.
El ejercicio permite reforzar el uso de R para importar bases de datos, limpiar información, construir nuevas variables, generar estadística descriptiva, elaborar gráficos y exportar resultados a Excel.
# Borra todos los objetos del entorno
rm(list = ls())
# Libera memoria
gc()
## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 544016 29.1 1211101 64.7 686460 36.7
## Vcells 993920 7.6 8388608 64.0 1876157 14.4
# Muestra en qué carpeta estás trabajando
getwd()
## [1] "C:/Users/brand/Desktop/iCloudDrive/DESK2025SAID/CLASES 20262/LABORATORIO 4/practica10A_B"
#Ubicar carpeta en la pestaña de Session > Set working > Choose practica10auto_primerapellido
install.packages(c("readxl", "openxlsx"))
library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(openxlsx)
## Warning: package 'openxlsx' was built under R version 4.4.3
pib <- read_excel("PIB_practica10A_B.xlsx", sheet = "Hoja1")
head(pib)
## # A tibble: 6 × 2
## Trimestre `PIB constante`
## <chr> <dbl>
## 1 1990 1T 12307182.
## 2 1990 2T 12654375.
## 3 1990 3T 12289241.
## 4 1990 4T 12931144.
## 5 1991 1T 12713377.
## 6 1991 2T 13349246.
colnames(pib) <- c("Periodo", "PIB")
pib$PIB <- as.numeric(pib$PIB)
pib$Anio <- substr(pib$Periodo, 1, 4)
pib$Anio <- as.numeric(pib$Anio)
pib <- na.omit(pib)
head(pib)
## # A tibble: 6 × 3
## Periodo PIB Anio
## <chr> <dbl> <dbl>
## 1 1990 1T 12307182. 1990
## 2 1990 2T 12654375. 1990
## 3 1990 3T 12289241. 1990
## 4 1990 4T 12931144. 1990
## 5 1991 1T 12713377. 1991
## 6 1991 2T 13349246. 1991
pib_anual <- aggregate(PIB ~ Anio, data = pib, FUN = mean)
head(pib_anual)
## Anio PIB
## 1 1990 12545486
## 2 1991 13044282
## 3 1992 13509782
## 4 1993 13897108
## 5 1994 14507764
## 6 1995 13650312
pib_anual$Crecimiento <- c(NA,
diff(pib_anual$PIB) / pib_anual$PIB[-nrow(pib_anual)] * 100)
head(pib_anual)
## Anio PIB Crecimiento
## 1 1990 12545486 NA
## 2 1991 13044282 3.975905
## 3 1992 13509782 3.568614
## 4 1993 13897108 2.866999
## 5 1994 14507764 4.394128
## 6 1995 13650312 -5.910300
resumen_pib <- summary(pib_anual$PIB)
resumen_crecimiento <- summary(pib_anual$Crecimiento)
resumen_pib
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 12545486 16263909 19042217 18842671 21809405 24176670
resumen_crecimiento
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## -8.354 1.064 2.702 2.095 4.185 7.199 1
plot(pib_anual$Anio, pib_anual$PIB,
type = "b",
main = "PIB anual promedio en México",
xlab = "Año",
ylab = "PIB",
col = "blue")
plot(pib_anual$Anio, pib_anual$Crecimiento,
type = "b",
main = "Tasa de crecimiento del PIB",
xlab = "Año",
ylab = "Crecimiento (%)",
col = "darkgreen")
abline(h = 0, col = "red")
resumen_pib_df <- data.frame(
Estadistica = names(resumen_pib),
PIB_Anual = as.numeric(resumen_pib)
)
resumen_crecimiento_df <- data.frame(
Estadistica = names(resumen_crecimiento),
Crecimiento = as.numeric(resumen_crecimiento)
)
wb <- createWorkbook()
addWorksheet(wb, "PIB_Anual")
addWorksheet(wb, "Resumen_PIB")
addWorksheet(wb, "Resumen_Crecimiento")
writeData(wb, "PIB_Anual", pib_anual)
writeData(wb, "Resumen_PIB", resumen_pib_df)
writeData(wb, "Resumen_Crecimiento", resumen_crecimiento_df)
saveWorkbook(wb, "PIB_practica10auto.xlsx", overwrite = TRUE)