4.1 Filter

Con filter() podemos obtener un subconjunto de las observaciones basadas en sus valores. Por ejemplo, para obtener lainformación solamente de los municipios del estado de Aguascalientes

library(dplyr)

dplyr::filter(poblacion, nom_ent == "Aguascalientes")
## # A tibble: 11 × 9
##    entidad nom_ent        mun   nom_mun    pobtot pobfem pob0_14 pob15…¹ pob65…²
##    <chr>   <chr>          <chr> <chr>       <dbl>  <dbl>   <dbl>   <dbl>   <dbl>
##  1 01      Aguascalientes 001   Aguascali… 948990 486917  240583  639532   67941
##  2 01      Aguascalientes 002   Asientos    51536  26275   16266   31919    3331
##  3 01      Aguascalientes 003   Calvillo    58250  29687   16720   35854    5641
##  4 01      Aguascalientes 004   Cosío       17000   8708    5183   10699    1118
##  5 01      Aguascalientes 005   Jesús Mar… 129929  65710   38303   84949    6538
##  6 01      Aguascalientes 006   Pabellón …  47646  24269   14140   30491    2977
##  7 01      Aguascalientes 007   Rincón de…  57369  29268   17703   35926    3579
##  8 01      Aguascalientes 008   San José …   9552   5020    3033    5838     681
##  9 01      Aguascalientes 009   Tepezalá    22485  11371    6858   14007    1566
## 10 01      Aguascalientes 010   El Llano    20853  10407    6249   13211    1392
## 11 01      Aguascalientes 011   San Franc…  61997  31292   20157   39408    2306
## # … with abbreviated variable names ¹​pob15_64, ²​pob65_mas
poblacion %>%
  dplyr::filter(nom_ent == "Aguascalientes")
## # A tibble: 11 × 9
##    entidad nom_ent        mun   nom_mun    pobtot pobfem pob0_14 pob15…¹ pob65…²
##    <chr>   <chr>          <chr> <chr>       <dbl>  <dbl>   <dbl>   <dbl>   <dbl>
##  1 01      Aguascalientes 001   Aguascali… 948990 486917  240583  639532   67941
##  2 01      Aguascalientes 002   Asientos    51536  26275   16266   31919    3331
##  3 01      Aguascalientes 003   Calvillo    58250  29687   16720   35854    5641
##  4 01      Aguascalientes 004   Cosío       17000   8708    5183   10699    1118
##  5 01      Aguascalientes 005   Jesús Mar… 129929  65710   38303   84949    6538
##  6 01      Aguascalientes 006   Pabellón …  47646  24269   14140   30491    2977
##  7 01      Aguascalientes 007   Rincón de…  57369  29268   17703   35926    3579
##  8 01      Aguascalientes 008   San José …   9552   5020    3033    5838     681
##  9 01      Aguascalientes 009   Tepezalá    22485  11371    6858   14007    1566
## 10 01      Aguascalientes 010   El Llano    20853  10407    6249   13211    1392
## 11 01      Aguascalientes 011   San Franc…  61997  31292   20157   39408    2306
## # … with abbreviated variable names ¹​pob15_64, ²​pob65_mas

No es necesario el uso del pipe, ya que los verbos de dplyr son funciones de R. Sin embargo, comúnmente usaremos múltiples verbos en un pipe y por eso es bueno acostumbrarnos a su uso. Además, permiten concatenar otro tipo de operaciones. Por ejemplo, si queremos obtener el total de la población de los estados del Bajío: Aguascalientes, Guanajuato, Querétaro, San Luis Potosí y Zacatecas, podemos lograrlo con:

bajio <- c("Aguascalientes", "Guanajuato", "Querétaro", "San Luis Potosí", "Zacatecas")

poblacion %>%
  dplyr::filter(nom_ent %in% bajio) %>%
  dplyr::pull(pobtot) %>% 
  sum()
## [1] 14405401

dplyr::pull es una función que nos permite extraer los valores de una variable, de manera similar a $, pero su formato nos permite añadirla en pipes.

Podemos filtrar cualquier tipo de variable, por ejemplo, para obtener los municipios con más de 1 millón de habitantes

poblacion %>%
  dplyr::filter(pobtot > 1000000) 
## # A tibble: 14 × 9
##    entidad nom_ent          mun   nom_mun  pobtot pobfem pob0_14 pob15…¹ pob65…²
##    <chr>   <chr>            <chr> <chr>     <dbl>  <dbl>   <dbl>   <dbl>   <dbl>
##  1 02      Baja California  002   Mexicali 1.05e6 520544  234367  734081   80587
##  2 02      Baja California  004   Tijuana  1.92e6 953783  449147 1359876  107406
##  3 08      Chihuahua        037   Juárez   1.51e6 755473  380302 1042232   85438
##  4 09      Ciudad de México 005   Gustavo… 1.17e6 609477  212345  819397  141375
##  5 09      Ciudad de México 007   Iztapal… 1.84e6 947835  366835 1293944  174312
##  6 11      Guanajuato       020   León     1.72e6 874542  447739 1160943  108370
##  7 14      Jalisco          039   Guadala… 1.39e6 718632  272081  940751  168417
##  8 14      Jalisco          120   Zapopan  1.48e6 755899  328031  998273  113576
##  9 15      México           033   Ecatepe… 1.65e6 846803  359605 1141183  143997
## 10 15      México           058   Nezahua… 1.08e6 557286  216244  746322  114432
## 11 19      Nuevo León       039   Monterr… 1.14e6 578189  221453  775139  138010
## 12 21      Puebla           114   Puebla   1.69e6 882696  372742 1173783  144652
## 13 22      Querétaro        014   Queréta… 1.05e6 535188  231542  741089   72340
## 14 25      Sinaloa          006   Culiacán 1.00e6 512484  248043  678895   74751
## # … with abbreviated variable names ¹​pob15_64, ²​pob65_mas