Як виконати очищення даних у 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *