Обробка Відсутніх Даних
Відсутні дані — це поширена проблема у наборах даних з реального світу. Вони можуть впливати на точність аналізу та призводити до хибних результатів, якщо їх не враховувати належним чином.
Виявлення відсутніх значень
Перший крок — перевірити, де і скільки даних відсутні у вашому наборі даних.
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"))
Цей підхід гарантує послідовну обробку пропущених значень і зберігає коректність стовпця для звітності або моделювання.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 4
Обробка Відсутніх Даних
Свайпніть щоб показати меню
Відсутні дані — це поширена проблема у наборах даних з реального світу. Вони можуть впливати на точність аналізу та призводити до хибних результатів, якщо їх не враховувати належним чином.
Виявлення відсутніх значень
Перший крок — перевірити, де і скільки даних відсутні у вашому наборі даних.
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"))
Цей підхід гарантує послідовну обробку пропущених значень і зберігає коректність стовпця для звітності або моделювання.
Дякуємо за ваш відгук!