Як виконати очищення даних у r (з прикладом)
Очищення даних стосується процесу перетвореннянеоброблених даних у дані, придатні для аналізу чи створення моделі.
У більшості випадків «очищення» набору даних передбачає роботу з відсутніми значеннями та повторюваними даними.
Ось найпоширеніші методи «очищення» набору даних у R:
Спосіб 1. Видаліть рядки з відсутніми значеннями
library (dplyr) #remove rows with any missing values df %>% na. omit ()
Спосіб 2: Замініть відсутні значення іншим значенням
library (dplyr) library (tidyr) #replace missing values in each numeric column with median value of column df %>% mutate(across(where(is. numeric ), ~replace_na(., median(., na. rm = TRUE ))))
Спосіб 3: видаліть повторювані рядки
library (dplyr) df %>% distinct(. keep_all = TRUE )
У наведених нижче прикладах показано, як використовувати кожен із цих методів на практиці з наступним кадром даних у R, який містить інформацію про різних баскетболістів:
#create data frame df <- data. frame (team=c('A', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'), points=c(4, 4, NA, 8, 6, 12, 14, 86, 13, 8), rebounds=c(9, 9, 7, 6, 8, NA, 9, 14, 12, 11), assists=c(2, 2, NA, 7, 6, 6, 9, 10, NA, 14)) #view data frame df team points rebound assists 1 to 4 9 2 2 to 4 9 2 3 B NA 7 NA 4 C 8 6 7 5 D 6 8 6 6 E 12 NA 6 7 F 14 9 9 8 G 86 14 10 9:13:12 NA 10 I 8 11 14
Приклад 1: видаліть рядки з пропущеними значеннями
Ми можемо використовувати такий синтаксис, щоб видалити рядки з відсутніми значеннями в будь-якому стовпці:
library (dplyr) #remove rows with missing values new_df <- df %>% na. omit () #view new data frame new_df team points rebound assists 1 to 4 9 2 2 to 4 9 2 4 C 8 6 7 5 D 6 8 6 7 F 14 9 9 8 G 86 14 10 10 I 8 11 14
Зауважте, що новий кадр даних не містить жодних рядків із пропущеними значеннями.
Приклад 2: Замініть відсутні значення іншим значенням
Ми можемо використовувати такий синтаксис, щоб замінити відсутні значення середнім значенням кожного стовпця:
library (dplyr) library (tidyr) #replace missing values in each numeric column with median value of column new_df <-df %>% mutate(across(where(is. numeric ),~replace_na(.,median(.,na. rm = TRUE )))) #view new data frame new_df team points rebound assists 1 to 4 9 2.0 2 to 4 9 2.0 3 B 8 7 6.5 4 C 8 6 7.0 5 D 6 8 6.0 6 E 12 9 6.0 7 F 14 9 9.0 8 G 86 14 10.0 9:13 12 6.5 10 I 8 11 14.0
Зауважте, що відсутні значення в кожному числовому стовпці було замінено середнім значенням стовпця.
Зауважте, що ви також можете замінити медіану у формулі на середнє , щоб замінити відсутні значення середнім значенням кожного стовпця.
Примітка : нам також довелося завантажити пакет Tidyr у цьому прикладі, оскільки функція drop_na() походить із цього пакета.
Приклад 3: видаліть повторювані рядки
Ми можемо використовувати такий синтаксис, щоб замінити відсутні значення середнім значенням кожного стовпця:
library (dplyr) #remove duplicate rows new_df <- df %>% distinct(. keep_all = TRUE ) #view new data frame new_df team points rebound assists 1 to 4 9 2 2 B NA 7 NA 3 C 8 6 7 4 D 6 8 6 5 E 12 NA 6 6 F 14 9 9 7 G 86 14 10 8:13:12 NA 9 I 8 11 14
Зауважте, що другий рядок було видалено з кадру даних, оскільки кожне зі значень у другому рядку було дублікатами значень у першому рядку.
Примітка . Повну документацію щодо функції dplyr distinct() можна знайти тут .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в R:
Як групувати та узагальнювати дані в R
Як створити зведені таблиці в R
Як видалити рядки з відсутніми значеннями в R