Обробка Відсутніх Даних
Свайпніть щоб показати меню
Відсутні дані — це поширена проблема у наборах даних з реального світу. Вони можуть впливати на точність аналізу та призводити до хибних результатів, якщо їх не враховувати належним чином.
Виявлення відсутніх значень
Перший крок — перевірити, де і скільки даних відсутні у вашому наборі даних.
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))
Заповнення пропущених значень у категоріальних стовпцях
Для категоріальних змінних (стовпці типу character або factor) пропущені значення часто замінюють на фіксований заповнювач, наприклад "Unknown".
Base R
df$fuel[is.na(df$fuel)] <- "Unknown"
dplyr
Функція replace_na() забезпечує більш зручний спосіб заповнення пропущених значень.
df <- df %>%
mutate(fuel = replace_na(fuel, "Unknown"))
Цей підхід гарантує послідовну обробку пропущених значень і зберігає коректність стовпця для звітності або моделювання.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат