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.
# 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
install.packages(c("readxl", "dplyr", "stringr", "readr", "janitor","openxlsx"))
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
archivo_excel <- "PIBE2020.xlsx"
archivo_excel
## [1] "PIBE2020.xlsx"
excel_sheets(archivo_excel)
## [1] "Página 1"
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" ...
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…
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…
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
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
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
library(openxlsx)
# Exportar archivo
write.xlsx(pibe_mexico, "PIBE2020_MX.xlsx", overwrite = TRUE)