0.1 PIB por Entidad Federativa

0.1.1 Descripción

En esta práctica se utilizará el lenguaje de programación R para procesar información estadística del Producto Interno Bruto por Entidad Federativa (PIBE) en 2020, con base en información del INEGI. A partir de la base original en formato Excel, se seleccionará y limpiará la información necesaria para generar un archivo en formato .csv, el cual podrá ser unido posteriormente en QGIS con la capa geográfica de las entidades federativas de México.


0.2 Preparar el ambiente de trabajo

0.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 543753 29.1    1210350 64.7   686460 36.7
## Vcells 993518  7.6    8388608 64.0  1876162 14.4
# Muestra en qué carpeta estás trabajando
getwd()
## [1] "C:/Users/brand/Desktop/iCloudDrive/DESK2025SAID/CLASES 20262/LABORATORIO 8/practica10"
#Ubicar carpeta en la pestaña de Session > Set working > Choose

0.3 Instalar y cargar paqueterías

0.3.1 Instalar paqueterías

install.packages(c("readxl", "dplyr", "stringr", "readr", "janitor","openxlsx"))

0.3.2 Cargar paqueterías

library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.3
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(stringr)
## Warning: package 'stringr' was built under R version 4.4.3
library(readr)
## Warning: package 'readr' was built under R version 4.4.3
library(janitor)
## Warning: package 'janitor' was built under R version 4.4.3
## 
## Adjuntando el paquete: 'janitor'
## The following objects are masked from 'package:stats':
## 
##     chisq.test, fisher.test

0.4 Cargar archivo excel INEGI

0.4.1 cargar excel

archivo_excel <- "PIBE2020.xlsx"
archivo_excel
## [1] "PIBE2020.xlsx"
excel_sheets(archivo_excel)
## [1] "Página 1"

0.4.2 Leer hoja del archivo

pibe_raw <- read_excel(
  path = archivo_excel,
  sheet = "Página 1",
  skip = 5,
  col_names = FALSE
)
## New names:
## • `` -> `...1`
## • `` -> `...2`
## • `` -> `...3`
head(pibe_raw, 15)
## # A tibble: 15 × 3
##    ...1                                                              ...2  ...3 
##    <chr>                                                             <chr> <chr>
##  1 Indicador                                                         Área… 2020 
##  2 Cuentas nacionales > Producto interno bruto por entidad federati… 0 Es… 2206…
##  3 Cuentas nacionales > Producto interno bruto por entidad federati… 01 A… 3071…
##  4 Cuentas nacionales > Producto interno bruto por entidad federati… 02 B… 8396…
##  5 Cuentas nacionales > Producto interno bruto por entidad federati… 03 B… 1519…
##  6 Cuentas nacionales > Producto interno bruto por entidad federati… 04 C… 5005…
##  7 Cuentas nacionales > Producto interno bruto por entidad federati… 05 C… 8435…
##  8 Cuentas nacionales > Producto interno bruto por entidad federati… 06 C… 1481…
##  9 Cuentas nacionales > Producto interno bruto por entidad federati… 07 C… 3372…
## 10 Cuentas nacionales > Producto interno bruto por entidad federati… 08 C… 8087…
## 11 Cuentas nacionales > Producto interno bruto por entidad federati… 09 C… 3293…
## 12 Cuentas nacionales > Producto interno bruto por entidad federati… 10 D… 2862…
## 13 Cuentas nacionales > Producto interno bruto por entidad federati… 11 G… 1019…
## 14 Cuentas nacionales > Producto interno bruto por entidad federati… 12 G… 2899…
## 15 Cuentas nacionales > Producto interno bruto por entidad federati… 13 H… 3649…
dim(pibe_raw)
## [1] 49  3
str(pibe_raw)
## tibble [49 × 3] (S3: tbl_df/tbl/data.frame)
##  $ ...1: chr [1:49] "Indicador" "Cuentas nacionales > Producto interno bruto por entidad federativa, base 2018 > Por actividad económica y entid"| __truncated__ "Cuentas nacionales > Producto interno bruto por entidad federativa, base 2018 > Por actividad económica y entid"| __truncated__ "Cuentas nacionales > Producto interno bruto por entidad federativa, base 2018 > Por actividad económica y entid"| __truncated__ ...
##  $ ...2: chr [1:49] "Área geográfica" "0 Estados Unidos Mexicanos" "01 Aguascalientes" "02 Baja California" ...
##  $ ...3: chr [1:49] "2020" "22069934.772000004" "307125.68299999996" "839693.34" ...

0.5 Limpiar la base de datos

0.5.1 Eliminar filas vacías

pibe_limpia <- pibe_raw %>%
  remove_empty("rows")

head(pibe_limpia, 15)
## # A tibble: 15 × 3
##    ...1                                                              ...2  ...3 
##    <chr>                                                             <chr> <chr>
##  1 Indicador                                                         Área… 2020 
##  2 Cuentas nacionales > Producto interno bruto por entidad federati… 0 Es… 2206…
##  3 Cuentas nacionales > Producto interno bruto por entidad federati… 01 A… 3071…
##  4 Cuentas nacionales > Producto interno bruto por entidad federati… 02 B… 8396…
##  5 Cuentas nacionales > Producto interno bruto por entidad federati… 03 B… 1519…
##  6 Cuentas nacionales > Producto interno bruto por entidad federati… 04 C… 5005…
##  7 Cuentas nacionales > Producto interno bruto por entidad federati… 05 C… 8435…
##  8 Cuentas nacionales > Producto interno bruto por entidad federati… 06 C… 1481…
##  9 Cuentas nacionales > Producto interno bruto por entidad federati… 07 C… 3372…
## 10 Cuentas nacionales > Producto interno bruto por entidad federati… 08 C… 8087…
## 11 Cuentas nacionales > Producto interno bruto por entidad federati… 09 C… 3293…
## 12 Cuentas nacionales > Producto interno bruto por entidad federati… 10 D… 2862…
## 13 Cuentas nacionales > Producto interno bruto por entidad federati… 11 G… 1019…
## 14 Cuentas nacionales > Producto interno bruto por entidad federati… 12 G… 2899…
## 15 Cuentas nacionales > Producto interno bruto por entidad federati… 13 H… 3649…

0.5.2 Renombrar columnas principales

names(pibe_limpia)[1:3] <- c(
  "indicador",
  "entidad",
  "pibe_2020"
)

head(pibe_limpia)
## # A tibble: 6 × 3
##   indicador                                                    entidad pibe_2020
##   <chr>                                                        <chr>   <chr>    
## 1 Indicador                                                    Área g… 2020     
## 2 Cuentas nacionales > Producto interno bruto por entidad fed… 0 Esta… 22069934…
## 3 Cuentas nacionales > Producto interno bruto por entidad fed… 01 Agu… 307125.6…
## 4 Cuentas nacionales > Producto interno bruto por entidad fed… 02 Baj… 839693.34
## 5 Cuentas nacionales > Producto interno bruto por entidad fed… 03 Baj… 151931.29
## 6 Cuentas nacionales > Producto interno bruto por entidad fed… 04 Cam… 500514.7…

0.6 Seleccionar variables de interés

0.6.1 Filtrar entidades

pibe_mexico <- pibe_limpia %>%
  filter(
    !is.na(entidad),
    entidad != "Área geográfica",
    entidad != "0 Estados Unidos Mexicanos",
    entidad != "Otras entidades federativas"
  ) %>%
  select(entidad, pibe_2020)

head(pibe_mexico, 15)
## # A tibble: 15 × 2
##    entidad                 pibe_2020         
##    <chr>                   <chr>             
##  1 01 Aguascalientes       307125.68299999996
##  2 02 Baja California      839693.34         
##  3 03 Baja California Sur  151931.29         
##  4 04 Campeche             500514.726        
##  5 05 Coahuila de Zaragoza 843597.571        
##  6 06 Colima               148143.273        
##  7 07 Chiapas              337240.435        
##  8 08 Chihuahua            808710.891        
##  9 09 Ciudad de México     3293855.3080000007
## 10 10 Durango              286240.782        
## 11 11 Guanajuato           1019446.377       
## 12 12 Guerrero             289968.16         
## 13 13 Hidalgo              364939.79400000005
## 14 14 Jalisco              1624208.871       
## 15 15 México               2035392.322

0.6.2 Limpiar nombres entidades

pibe_mexico <- pibe_mexico %>%
  mutate(
    entidad = str_remove(entidad, "^[0-9]{2} "),
    entidad = str_trim(entidad),
    pibe_2020 = round(as.numeric(pibe_2020), 3)
  )

head(pibe_mexico, 15)
## # A tibble: 15 × 2
##    entidad              pibe_2020
##    <chr>                    <dbl>
##  1 Aguascalientes         307126.
##  2 Baja California        839693.
##  3 Baja California Sur    151931.
##  4 Campeche               500515.
##  5 Coahuila de Zaragoza   843598.
##  6 Colima                 148143.
##  7 Chiapas                337240.
##  8 Chihuahua              808711.
##  9 Ciudad de México      3293855.
## 10 Durango                286241.
## 11 Guanajuato            1019446.
## 12 Guerrero               289968.
## 13 Hidalgo                364940.
## 14 Jalisco               1624209.
## 15 México                2035392.
str(pibe_mexico)
## tibble [33 × 2] (S3: tbl_df/tbl/data.frame)
##  $ entidad  : chr [1:33] "Aguascalientes" "Baja California" "Baja California Sur" "Campeche" ...
##  $ pibe_2020: num [1:33] 307126 839693 151931 500515 843598 ...
summary(pibe_mexico)
##    entidad            pibe_2020      
##  Length:33          Min.   : 135083  
##  Class :character   1st Qu.: 292042  
##  Mode  :character   Median : 492302  
##                     Mean   : 689685  
##                     3rd Qu.: 816457  
##                     Max.   :3293855  
##                     NA's   :1

0.6.3 Revisar estructura final

head(pibe_mexico, 15)
## # A tibble: 15 × 2
##    entidad              pibe_2020
##    <chr>                    <dbl>
##  1 Aguascalientes         307126.
##  2 Baja California        839693.
##  3 Baja California Sur    151931.
##  4 Campeche               500515.
##  5 Coahuila de Zaragoza   843598.
##  6 Colima                 148143.
##  7 Chiapas                337240.
##  8 Chihuahua              808711.
##  9 Ciudad de México      3293855.
## 10 Durango                286241.
## 11 Guanajuato            1019446.
## 12 Guerrero               289968.
## 13 Hidalgo                364940.
## 14 Jalisco               1624209.
## 15 México                2035392.
str(pibe_mexico)
## tibble [33 × 2] (S3: tbl_df/tbl/data.frame)
##  $ entidad  : chr [1:33] "Aguascalientes" "Baja California" "Baja California Sur" "Campeche" ...
##  $ pibe_2020: num [1:33] 307126 839693 151931 500515 843598 ...
summary(pibe_mexico)
##    entidad            pibe_2020      
##  Length:33          Min.   : 135083  
##  Class :character   1st Qu.: 292042  
##  Mode  :character   Median : 492302  
##                     Mean   : 689685  
##                     3rd Qu.: 816457  
##                     Max.   :3293855  
##                     NA's   :1

0.7 Exportar base para QGIS

0.7.1 Guardar archivo CSV

library(openxlsx)

# Exportar archivo
write.xlsx(pibe_mexico, "PIBE2020_MX.xlsx", overwrite = TRUE)