B.1 El paquete dplyr

library(dplyr)

dplyr Permite sustituir funciones base de R (como split(), subset(), apply(), sapply(), lapply(), tapply() y aggregate()) mediante una “gramática” más sencilla para la manipulación de datos:

  • select() seleccionar variables/columnas (también rename()).
  • mutate() crear variables/columnas (también transmute()).
  • filter() seleccionar casos/filas (también slice()).
  • arrange() ordenar o organizar casos/filas.
  • summarise() resumir valores.
  • group_by() permite operaciones por grupo empleando el concepto “dividir-aplicar-combinar” (ungroup() elimina el agrupamiento).

Puede trabajar con conjuntos de datos en distintos formatos:

  • data.frame, data.table, tibble, …
  • bases de datos relacionales (lenguaje SQL), …
  • bases de datos Hadoop (paquete plyrmr).

En lugar de operar sobre vectores como las funciones base, opera sobre objetos de este tipo (solo nos centraremos en data.frame).

B.1.1 Datos de ejemplo

El fichero empleados.RData contiene datos de empleados de un banco. Supongamos por ejemplo que estamos interesados en estudiar si hay discriminación por cuestión de sexo o raza.

load("datos/empleados.RData")
data.frame(Etiquetas = attr(empleados, "variable.labels"))  # Listamos las etiquetas
##                              Etiquetas
## id                  Código de empleado
## sexo                              Sexo
## fechnac            Fecha de nacimiento
## educ            Nivel educativo (años)
## catlab               Categoría Laboral
## salario                 Salario actual
## salini                 Salario inicial
## tiempemp       Meses desde el contrato
## expprev     Experiencia previa (meses)
## minoria           Clasificación étnica
## sexoraza Clasificación por sexo y raza
attr(empleados, "variable.labels") <- NULL                  # Eliminamos las etiquetas para que no molesten...