Проверка принадлежности

Очистка данных в R

Maggie Matsui

Content Developer @ DataCamp

Категориальные данные

  • Категориальные переменные имеют фиксированный и известный набор возможных значений
Данные Примеры значений
Семейное положение unmarried, married
Категория дохода домохозяйства 0-20K, 20-40K, ...
Размер футболки S, M, L, XL
Очистка данных в R

Факторы

  • В factor каждая категория хранится как число и имеет соответствующую метку
Данные Метки Числовое представление
Семейное положение unmarried, married 1, 2
Категория дохода домохозяйства 0-20K, 20-40K, ... 1, 2, ...
Размер футболки S, M, L, XL 1, 2, 3, 4
Очистка данных в R

Уровни фактора

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"
Очистка данных в R

Значения, которые не принадлежат

  • factor не может содержать значения, выходящие за пределы заранее определённых
Данные Уровни Недопустимо
Семейное положение unmarried, married divorced
Категория дохода домохозяйства 0-20K, 20-40K, ... 10-30K
Размер футболки S, M, L, XL S/M
Очистка данных в R

Откуда берутся такие значения?

 

Слева — ошибки ввода данных: текстовое поле с курсором для свободного ввода и выпадающее меню. Справа — ошибки разбора, представленные базой данных.

Очистка данных в R

Фильтрующие объединения: краткое повторение

  • Сохраняет или удаляет наблюдения из первой таблицы, не добавляя столбцы

Заголовок: Semi-join. Подзаголовок: Какие наблюдения из X есть также в Y? Слева — одностолбцовая таблица X со значениями a, b и c. Справа — одностолбцовая таблица Y со значениями a, c и d. Значения a и c в каждой таблице соединены линиями. В таблице X ячейки a и c выделены.

Очистка данных в R

Фильтрующие объединения: краткое повторение

  • Сохраняет или удаляет наблюдения из первой таблицы, не добавляя столбцы

Заголовок: Anti-join. Подзаголовок: Какие наблюдения из X отсутствуют в Y? Слева — одностолбцовая таблица X со значениями a, b и c. Справа — одностолбцовая таблица Y со значениями a, c и d. Значения a и c в каждой таблице соединены линиями. В таблице X выделена ячейка b.

Очистка данных в R

Пример с группой крови

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-
Очистка данных в R

Пример с группой крови

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-
Очистка данных в R

Поиск значений, не входящих в список

Диаграмма Венна. Левый круг — study_data, правый — группы крови. Слева — Z+. В пересечении — A-, O-, AB+, A+, O+ и B-. Справа — B+ и AB-. Значение Z+ слева выделено красным.

Очистка данных в R

Anti-join

study_data %>%
  anti_join(blood_types, by = "blood_type")
      name   birthday blood_type
1 Jennifer 2019-12-17         Z+
Очистка данных в R

Удаление значений, не входящих в список

Диаграмма Венна. Левый круг — study_data, правый — группы крови. Слева — Z+. В пересечении — A-, O-, AB+, A+, O+ и B-. Справа — B+ и AB-. Группы крови в пересечении выделены синим.

Очистка данных в 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+
Очистка данных в R

Давайте потренируемся!

Очистка данных в R

Preparing Video For Download...