Фактор у R: категоріальна змінна та безперервні змінні
Що таке фактор у R?
Фактор R це змінна, яка використовується для категоризації та зберігання даних, має обмежену кількість різних значень. Він зберігає дані як вектор цілих значень. Фактор у R також відомий як категоріальна змінна, яка зберігає як рядкові, так і цілі значення даних як рівні. Фактор здебільшого використовується в статистичному моделюванні та дослідницькому аналізі даних за допомогою R.
У наборі даних можна виділити два типи змінних: категоричний та безперервний.
- В описовій статистиці для категоріальних змінних у R значення обмежене і зазвичай базується на певній кінцевій групі. Наприклад, категоріальною змінною в R може бути країна, рік, стать, професія.
- Проте безперервна змінна може приймати будь-які значення, від цілого до десяткового. Наприклад, ми можемо мати дохід, ціну акції тощо.
Категориальні змінні
Категоріальні змінні в R зберігаються у факторі. Давайте перевіримо наведений нижче код, щоб перетворити символьну змінну на факторну змінну в R. Символи не підтримуються в алгоритмі машинного навчання, і єдиним способом є перетворити рядок на ціле число.
синтаксис
factor(x = character(), levels, labels = levels, ordered = is.ordered(x))
аргументи:
- x: вектор категоріальних даних у R. Має бути рядком або цілим числом, а не десятковим.
- Рівні: вектор можливих значень x. Цей аргумент необов'язковий. Значенням за замовчуванням є унікальний список елементів вектора x.
- етикетки: додайте мітку до категоричних даних x у R. Наприклад, 1 може взяти мітку «чоловічий», а 0 — мітку «жіночий».
- замовлений: Визначте, чи потрібно впорядкувати рівні в категоріальних даних у R.
приклад:
Давайте створимо факторний кадр даних.
# Create gender vector gender_vector <- c("Male", "Female", "Female", "Male", "Male") class(gender_vector) # Convert gender_vector to a factor factor_gender_vector <-factor(gender_vector) class(factor_gender_vector)
вихід:
## [1] "character" ## [1] "factor"
Важливо трансформувати a рядок у факторну змінну в R, коли ми виконуємо завдання машинного навчання.
Категориальну змінну в R можна розділити на номінальна категоріальна змінна та порядкова категоріальна змінна.
Номінальна категоріальна змінна
Категоріальна змінна має кілька значень, але порядок не має значення. Наприклад, чоловік чи жінка. Категоріальні змінні в R не мають порядку.
# Create a color vector color_vector <- c('blue', 'red', 'green', 'white', 'black', 'yellow') # Convert the vector to factor factor_color <- factor(color_vector) factor_color
вихід:
## [1] blue red green white black yellow ## Levels: black blue green red white yellow
З factor_color ми не можемо визначити порядок.
Порядкова категоріальна змінна
Порядкові категоричні змінні мають природний порядок. Ми можемо вказати порядок: від найнижчого до найвищого з порядком = TRUE і від найвищого до найнижчого з порядком = FALSE.
приклад:
Ми можемо використовувати зведення для підрахунку значень для кожної факторної змінної в R.
# Create Ordinal categorical vector day_vector <- c('evening', 'morning', 'afternoon', 'midday', 'midnight', 'evening') # Convert `day_vector` to a factor with ordered level factor_day <- factor(day_vector, order = TRUE, levels =c('morning', 'midday', 'afternoon', 'evening', 'midnight')) # Print the new variable factor_day
вихід:
## [1] evening morning afternoon midday midnight evening
приклад:
## Levels: morning < midday < afternoon < evening < midnight # Append the line to above code # Count the number of occurence of each level summary(factor_day)
вихід:
## morning midday afternoon evening midnight ## 1 1 1 2 1
R впорядкував рівень від «ранку» до «опівночі», як зазначено в дужках рівнів.
Безперервні змінні
Безперервні змінні класу є значенням за замовчуванням у R. Вони зберігаються як числові чи цілі. Ми бачимо це з набору даних нижче. mtcars — це вбудований набір даних. Він збирає інформацію про різні типи автомобілів. Ми можемо імпортувати його за допомогою mtcars і перевірити клас змінної mpg, миля на галон. Він повертає числове значення, що вказує на безперервну змінну.
dataset <- mtcars class(dataset$mpg)
Вихід
## [1] "numeric"