Перетворення Даних
Свайпніть щоб показати меню
Трансформація даних — це ключовий етап підготовки сирих даних до аналізу. Вона включає зміну, додавання або перекодування змінних для підвищення інформативності та готовності даних до аналізу.
Створення нових стовпців
Поширена трансформація — обчислення нових показників на основі існуючих стовпців. Наприклад, можна розрахувати ціну за кілометр для оцінки економічності транспортного засобу.
Base R
Новий стовпець можна створити за допомогою оператора $, визначивши його назву та присвоївши йому значення.
df$price_per_km <- df$selling_price / df$km_driven
head(df)
dplyr
Додавання нових стовпців за допомогою функції mutate(). Усередині mutate() вказується назва нового стовпця та спосіб його обчислення.
df <- df %>%
mutate(price_per_km = selling_price / km_driven)
Перетворення та трансформація числових даних у текстовому форматі
У реальних наборах даних числова інформація часто зберігається як текст із додатковими нечисловими символами. Наприклад, значення потужності двигуна можуть виглядати як "68 bhp", які потрібно очистити та перетворити перед аналізом.
Base R
Використання gsub() для видалення зайвого тексту та застосування as.numeric() для перетворення результату у числовий формат. Після конвертації можна виконувати додаткові трансформації, наприклад, переведення brake horsepower (bhp) у кіловати.
df$max_power <- as.numeric(gsub(" bhp", "", df$max_power))
df$max_power_kw <- df$max_power * 0.7457 # convert to kilowatts
dplyr
Той самий процес можна оптимізувати всередині виклику mutate(). Можна поєднати заміну тексту, перетворення типу та створення нового стовпця в одному кроці, що робить код чистішим і легшим для читання.
df <- df %>%
mutate(
max_power = as.numeric(gsub(" bhp", "", max_power)),
max_power_kw = max_power * 0.7457
)
Категоризація даних
Можна створювати нові категоріальні змінні, групуючи неперервні значення у змістовні категорії. Наприклад, автомобілі можна класифікувати у низький, середній або високий цінові діапазони на основі їхньої ціни продажу.
Base R
Це можна зробити за допомогою вкладених операторів ifelse(). Кожна умова перевіряється по черзі, і значення призначається відповідно.
df$price_category <- ifelse(df$selling_price < 300000, "Low",
ifelse(df$selling_price < 700000, "Medium", "High"))
dplyr
Функцію case_when() можна використовувати як заміну вкладеним операторам if-else. Це дозволяє записувати кілька умов у чистому, зручному для читання форматі.
df <- df %>%
mutate(price_category = case_when(
selling_price < 300000 ~ "Low",
selling_price < 700000 ~ "Medium",
TRUE ~ "High"
))
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат