Обробка Відсутніх Даних
Свайпніть щоб показати меню
Відсутні дані — поширена проблема у реальних наборах даних. Вони можуть впливати на точність аналізу та призводити до хибних результатів, якщо їх не враховувати належним чином.
Виявлення відсутніх значень
Перший крок — перевірити, де і скільки даних відсутньо у вашому наборі даних.
is.na(df) # returns a logical matrix of TRUE/FALSE
sum(is.na(df)) # total number of missing values
colSums(is.na(df)) # missing values per column
Це дає чітке уявлення про те, у яких стовпцях є відсутні дані та наскільки серйозною є проблема.
Видалення відсутніх значень
Іноді найпростішим способом обробки відсутніх даних є видалення рядків, які містять будь-які значення NA. Це забезпечує чистоту набору даних, але також може призвести до значної втрати даних, якщо таких рядків багато.
Базовий R
Функція na.omit() видаляє всі рядки з пропущеними значеннями з набору даних.
df_clean <- na.omit(df)
sum(is.na(df_clean))
dplyr
Ту ж задачу можна виконати за допомогою функції drop_na().
df_clean <- df %>%
drop_na()
Цей підхід простий і добре підходить, коли кількість пропущених даних невелика, але може бути неідеальним, якщо в процесі видаляється багато рядків.
Замінювання пропущених значень
Замість видалення рядків більш ефективним підходом є імпутація, коли пропущені значення замінюються на осмислені оцінки. Це допомагає зберегти розмір набору даних і зменшити упередженість. Поширена стратегія для числових змінних — заміна пропущених значень на середнє по стовпцю.
Базовий R
Можна використовувати логічну індексацію з is.na(), щоб знайти відсутні значення та призначити їм середнє значення стовпця.
df$selling_price[is.na(df$selling_price)] <- mean(df$selling_price, na.rm = TRUE)
dplyr
Імпутацію також можна виконати за допомогою ifelse() всередині mutate().
df <- df %>%
mutate(selling_price = ifelse(is.na(selling_price),
mean(selling_price, na.rm = TRUE),
selling_price))
Заповнення пропущених значень у категоріальних стовпцях
Для категоріальних змінних (символьних або факторних стовпців) пропущені значення часто замінюють на фіксований заповнювач, наприклад "Unknown".
Base R
df$fuel[is.na(df$fuel)] <- "Unknown"
dplyr
Функція replace_na() забезпечує зручніший спосіб заповнення пропущених значень.
df <- df %>%
mutate(fuel = replace_na(fuel, "Unknown"))
Такий підхід гарантує послідовну обробку пропущених значень і збереження валідності стовпця для звітності або моделювання.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат