Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Обробка Відсутніх Даних | Маніпулювання та Очищення Даних
Аналіз Даних у R

bookОбробка Відсутніх Даних

Відсутні дані — це поширена проблема у реальних наборах даних. Вони можуть впливати на точність аналізу та призводити до хибних результатів, якщо їх належним чином не врахувати.

Виявлення відсутніх значень

Перший крок — перевірити, де і скільки даних відсутньо у вашому наборі даних.

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"))

Такий підхід гарантує послідовну обробку пропущених значень і зберігає коректність стовпця для подальшої звітності або моделювання.

question mark

Як замінити NA у стовпці fuel на "Unknown"?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 10

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

Can you explain the difference between removing and imputing missing values?

How do I decide whether to drop or fill missing data in my dataset?

Can you show more examples of handling missing values in R?

Awesome!

Completion rate improved to 4

bookОбробка Відсутніх Даних

Свайпніть щоб показати меню

Відсутні дані — це поширена проблема у реальних наборах даних. Вони можуть впливати на точність аналізу та призводити до хибних результатів, якщо їх належним чином не врахувати.

Виявлення відсутніх значень

Перший крок — перевірити, де і скільки даних відсутньо у вашому наборі даних.

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"))

Такий підхід гарантує послідовну обробку пропущених значень і зберігає коректність стовпця для подальшої звітності або моделювання.

question mark

Як замінити NA у стовпці fuel на "Unknown"?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 10
some-alt