6.2 dplyr::select()

La función anterior sólo trabaja con observaciones, por lo que también debe existir un análogo para las variables, dicha función es dplyr::select(), la cual permite un conjunto de funciones útiles para hacer selecciones específicas de variables.

Population_FEntity %>% select(`Entidad Federativa`, Rango_edad, Porcentaje) %>% head()
# A tibble: 6 x 3
  `Entidad Federativa` Rango_edad Porcentaje
  <chr>                <chr>           <dbl>
1 Aguascalientes       0 a 4           10.3 
2 Baja California      0 a 4            9.41
3 Baja California Sur  0 a 4            9.00
4 Campeche             0 a 4            8.34
5 Coahuila             0 a 4            9.78
6 Colima               0 a 4            8.09

Lo anterior es equivalente a la siguiente instrucción:

Population_FEntity %>% select(!`Población Total`) %>% head()
# A tibble: 6 x 3
  `Entidad Federativa` Rango_edad Porcentaje
  <chr>                <chr>           <dbl>
1 Aguascalientes       0 a 4           10.3 
2 Baja California      0 a 4            9.41
3 Baja California Sur  0 a 4            9.00
4 Campeche             0 a 4            8.34
5 Coahuila             0 a 4            9.78
6 Colima               0 a 4            8.09

Utilizar el operando ! se indica que dicha variable no se desea observar, dicha instrucción se pudo haber sustituido con Population_FEntity %>% select(-'Población Total'). También se puede usar un rango de columnas con :.

La función select tiene algunas funciones auxiliares para trabajar con texto como el uso de expresiones regulares. Algunas de estas funciones son contains(), ends_with() y start_with(). Para el uso de este tipo de filtros en observaciones, véase el paquete stringr.

iris %>% select(starts_with("Petal")) %>% head()
  Petal.Length Petal.Width
1          1.4         0.2
2          1.4         0.2
3          1.3         0.2
4          1.5         0.2
5          1.4         0.2
6          1.7         0.4
Population_FEntity %>% select(contains("_")) %>% head()
# A tibble: 6 x 1
  Rango_edad
  <chr>     
1 0 a 4     
2 0 a 4     
3 0 a 4     
4 0 a 4     
5 0 a 4     
6 0 a 4     

Finalmente, para obtener todas las columnas se puede usar la función dplyr::everything(), para obtener variables donde sus nombres estén en un grupo dplyr::one_of y para seleccionar las variables por rango dplyr::num_range().