Capítulo8 Transformación: Selecionar variables

Fecha de la ultima revisión

## [1] "2024-11-07"

8.1 Funciones en este módulo

  • starts_with() # selecciona variables que empiezan con una palabra o letra
  • ends_with() # selecciona variables que terminan con una palabra o letra
  • rename() # cambiar el nombre de una variable
  • contains() # selecciona variables que contienen una palabra o letra
  • everything() # selecciona todas las variables
  • if_else() # reemplaza valores en una columna basado en una condición

Es una función para seleccionar basado en una caracteristicas del nombre de la columna

library(datos)
names(vuelos)
##  [1] "anio"               "mes"                "dia"               
##  [4] "horario_salida"     "salida_programada"  "atraso_salida"     
##  [7] "horario_llegada"    "llegada_programada" "atraso_llegada"    
## [10] "aerolinea"          "vuelo"              "codigo_cola"       
## [13] "origen"             "destino"            "tiempo_vuelo"      
## [16] "distancia"          "hora"               "minuto"            
## [19] "fecha_hora"
library(tidyverse)
vuelos %>% 
  dplyr::select(horario_salida)
## # A tibble: 336,776 × 1
##    horario_salida
##             <int>
##  1            517
##  2            533
##  3            542
##  4            544
##  5            554
##  6            554
##  7            555
##  8            557
##  9            557
## 10            558
## # ℹ 336,766 more rows
vuelos %>% 
  dplyr::select(starts_with("horario"))
## # A tibble: 336,776 × 2
##    horario_salida horario_llegada
##             <int>           <int>
##  1            517             830
##  2            533             850
##  3            542             923
##  4            544            1004
##  5            554             812
##  6            554             740
##  7            555             913
##  8            557             709
##  9            557             838
## 10            558             753
## # ℹ 336,766 more rows
vuelos %>% 
  dplyr::select(ends_with("salida"))
## # A tibble: 336,776 × 2
##    horario_salida atraso_salida
##             <int>         <dbl>
##  1            517             2
##  2            533             4
##  3            542             2
##  4            544            -1
##  5            554            -6
##  6            554            -4
##  7            555            -5
##  8            557            -3
##  9            557            -3
## 10            558            -2
## # ℹ 336,766 more rows
vuelos %>% 
  dplyr::select(contains("salida"))
## # A tibble: 336,776 × 3
##    horario_salida salida_programada atraso_salida
##             <int>             <int>         <dbl>
##  1            517               515             2
##  2            533               529             4
##  3            542               540             2
##  4            544               545            -1
##  5            554               600            -6
##  6            554               558            -4
##  7            555               600            -5
##  8            557               600            -3
##  9            557               600            -3
## 10            558               600            -2
## # ℹ 336,766 more rows

8.2 rename()

Cambiar el nombre de la columna

vuelos %>% 
  rename(aeropuerto_origen=origen) %>% 
  rename(areopuerto_distino=destino) # nombre nuevo= nombre original
## # A tibble: 336,776 × 19
##     anio   mes   dia horario_salida salida_programada atraso_salida
##    <int> <int> <int>          <int>             <int>         <dbl>
##  1  2013     1     1            517               515             2
##  2  2013     1     1            533               529             4
##  3  2013     1     1            542               540             2
##  4  2013     1     1            544               545            -1
##  5  2013     1     1            554               600            -6
##  6  2013     1     1            554               558            -4
##  7  2013     1     1            555               600            -5
##  8  2013     1     1            557               600            -3
##  9  2013     1     1            557               600            -3
## 10  2013     1     1            558               600            -2
## # ℹ 336,766 more rows
## # ℹ 13 more variables: horario_llegada <int>, llegada_programada <int>,
## #   atraso_llegada <dbl>, aerolinea <chr>, vuelo <int>, codigo_cola <chr>,
## #   aeropuerto_origen <chr>, areopuerto_distino <chr>, tiempo_vuelo <dbl>,
## #   distancia <dbl>, hora <dbl>, minuto <dbl>, fecha_hora <dttm>

8.3 Reoganizar el orden de las columnas, usando select() y everything() en la misma función

head(vuelos)
## # A tibble: 6 × 19
##    anio   mes   dia horario_salida salida_programada atraso_salida
##   <int> <int> <int>          <int>             <int>         <dbl>
## 1  2013     1     1            517               515             2
## 2  2013     1     1            533               529             4
## 3  2013     1     1            542               540             2
## 4  2013     1     1            544               545            -1
## 5  2013     1     1            554               600            -6
## 6  2013     1     1            554               558            -4
## # ℹ 13 more variables: horario_llegada <int>, llegada_programada <int>,
## #   atraso_llegada <dbl>, aerolinea <chr>, vuelo <int>, codigo_cola <chr>,
## #   origen <chr>, destino <chr>, tiempo_vuelo <dbl>, distancia <dbl>,
## #   hora <dbl>, minuto <dbl>, fecha_hora <dttm>
vuelos %>% 
    dplyr::select(distancia, aerolinea, everything())
## # A tibble: 336,776 × 19
##    distancia aerolinea  anio   mes   dia horario_salida salida_programada
##        <dbl> <chr>     <int> <int> <int>          <int>             <int>
##  1      1400 UA         2013     1     1            517               515
##  2      1416 UA         2013     1     1            533               529
##  3      1089 AA         2013     1     1            542               540
##  4      1576 B6         2013     1     1            544               545
##  5       762 DL         2013     1     1            554               600
##  6       719 UA         2013     1     1            554               558
##  7      1065 B6         2013     1     1            555               600
##  8       229 EV         2013     1     1            557               600
##  9       944 B6         2013     1     1            557               600
## 10       733 AA         2013     1     1            558               600
## # ℹ 336,766 more rows
## # ℹ 12 more variables: atraso_salida <dbl>, horario_llegada <int>,
## #   llegada_programada <int>, atraso_llegada <dbl>, vuelo <int>,
## #   codigo_cola <chr>, origen <chr>, destino <chr>, tiempo_vuelo <dbl>,
## #   hora <dbl>, minuto <dbl>, fecha_hora <dttm>

Seleccionar de un conjunto de variables en orden que aparece en el data.frame

vuelos |> dplyr::select(anio:horario_salida)
## # A tibble: 336,776 × 4
##     anio   mes   dia horario_salida
##    <int> <int> <int>          <int>
##  1  2013     1     1            517
##  2  2013     1     1            533
##  3  2013     1     1            542
##  4  2013     1     1            544
##  5  2013     1     1            554
##  6  2013     1     1            554
##  7  2013     1     1            555
##  8  2013     1     1            557
##  9  2013     1     1            557
## 10  2013     1     1            558
## # ℹ 336,766 more rows

  1. Ejercicios:

Hacer los ejercicios en la sección 5.4.1 del libro en español