1 Introducción

1.1 Descripción

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.


2 Preparar el ambiente de trabajo

2.1 Limpiar el entorno

# 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

3 Instalar y cargar paqueterías

3.1 Instalar paqueterías

install.packages(c("readxl", "openxlsx"))

3.2 Cargar paqueterías

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

4 Importar datos

4.1 Importar datos de excel

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.

4.2 Limpieza de datos

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

5 PIB anual

5.1 Promedio de Trimestres

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

6 Tasa de crecmiento

6.1 Calcular crecimiento

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

7 Resumen de datos

7.1 Estadística Descriptiva

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

8 Visualización de datos

8.1 Gráfica PIB anual

plot(pib_anual$Anio, pib_anual$PIB,
     type = "b",
     main = "PIB anual promedio en México",
     xlab = "Año",
     ylab = "PIB",
     col = "blue")

8.2 Gráfica de tasa de crecimiento

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")


9 Exportar a Excel

9.1 Crear libro de Excel

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)