Comprobar pertenencia

Limpieza de datos en R

Maggie Matsui

Content Developer @ DataCamp

Datos categóricos

  • Las variables categóricas tienen un conjunto de valores posibles fijo y conocido
Datos Valores de ejemplo
Estado civil unmarried, married
Rango de ingresos del hogar 0-20K, 20-40K, ...
Talla de camiseta S, M, L, XL
Limpieza de datos en R

Factores

  • En un factor, cada categoría se almacena como un número y tiene una etiqueta correspondiente
Datos Etiquetas Representación numérica
Estado civil unmarried, married 1, 2
Rango de ingresos del hogar 0-20K, 20-40K, ... 1, 2, ...
Talla de camiseta S, M, L, XL 1, 2, 3, 4
Limpieza de datos en R

Niveles de un factor

tshirt_size
L  XL XL L  M  M  M  L  XL L  S  M  M  S  S  M  XL S  L  S ... 
Levels: S M L XL
levels(tshirt_size)
"S"  "M"  "L"  "XL"
Limpieza de datos en R

Valores que no pertenecen

  • Los factors no pueden tener valores fuera de los predefinidos
Datos Niveles No permitido
Estado civil unmarried, married divorced
Rango de ingresos del hogar 0-20K, 20-40K, ... 10-30K
Talla de camiseta S, M, L, XL S/M
Limpieza de datos en R

¿Cómo acabamos con estos valores?

 

A la izquierda, errores de introducción de datos representados por un cuadro de texto con cursor para texto libre y un menú desplegable. A la derecha, errores de parseo representados por una base de datos.

Limpieza de datos en R

Filtering joins: repaso rápido

  • Conserva o elimina observaciones de la primera tabla sin añadir columnas

Título: Semi-join. Subtítulo: ¿Qué observaciones de X también están en Y? A la izquierda, una tabla de una columna llamada X con valores a, b y c. A la derecha, una tabla de una columna llamada Y con valores a, c y d. Las a y c de cada tabla están conectadas con líneas. En X, las celdas de a y c están resaltadas.

Limpieza de datos en R

Filtering joins: repaso rápido

  • Conserva o elimina observaciones de la primera tabla sin añadir columnas

Título: Anti-join. Subtítulo: ¿Qué observaciones de X no están en Y? A la izquierda, una tabla de una columna llamada X con valores a, b y c. A la derecha, una tabla de una columna llamada Y con valores a, c y d. Las a y c de cada tabla están conectadas con líneas. En X, la celda de b está resaltada.

Limpieza de datos en R

Ejemplo de tipos de sangre

study_data
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5 Jennifer 2019-12-17         Z+
6  Kennedy 2020-04-27         A+
7    Keith 2019-04-19        AB+
blood_types
  blood_type
1         O-
2         O+
3         A-
4         A+
5         B+
6         B-
7        AB+
8        AB-
Limpieza de datos en R

Ejemplo de tipos de sangre

study_data
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5 Jennifer 2019-12-17         Z+  <--
6  Kennedy 2020-04-27         A+
7    Keith 2019-04-19        AB+
blood_types
  blood_type
1         O-
2         O+
3         A-
4         A+
5         B+
6         B-
7        AB+
8        AB-
Limpieza de datos en R

Buscar no miembros

Diagrama de Venn. El círculo izquierdo representa study_data y el derecho, blood_types. A la izquierda está Z+. En la intersección: A-, O-, AB+, A+, O+ y B-. A la derecha: B+ y AB-. El Z+ de la izquierda está en rojo.

Limpieza de datos en R

Anti-join

study_data %>%
  anti_join(blood_types, by = "blood_type")
      name   birthday blood_type
1 Jennifer 2019-12-17         Z+
Limpieza de datos en R

Eliminar no miembros

Diagrama de Venn. El círculo izquierdo representa study_data y el derecho, blood_types. A la izquierda está Z+. En la intersección: A-, O-, AB+, A+, O+ y B-. Los tipos de sangre de la intersección están en azul.

Limpieza de datos en R

Semi-join

study_data %>%
  semi_join(blood_types, by = "blood_type")
      name   birthday blood_type
1     Beth 2019-10-20         B-
2 Ignatius 2020-07-08         A-
3     Paul 2019-08-12         O+
4    Helen 2019-03-17         O-
5  Kennedy 2020-04-27         A+
6    Keith 2019-04-19        AB+
Limpieza de datos en R

¡Vamos a practicar!

Limpieza de datos en R

Preparing Video For Download...