Перетворення змінних

Дата публікації

September 1, 2022

Modified

November 17, 2022

Переконавшись у тому, що шкали мають прийнятну надійність, можна переходити до створення потрібних нових змінних і перетворення існуючих. Перший тип перетворень – створення категоріальних змінних чи факторів з кількісних. У нашій таблиці даних pss є змінна gender, яка в закодованому вигляді містить інформацію про стать досліджуваного: одиницею позначені чоловіки, двійкою – жінки. Ця змінна має мати номінальну шкалу, оскільки її значення вказують на приналежність досліджуваного до певної категорії. Виконання потрібного перетворення здійснюється за допомогою функції factor():

Фрагмент коду 5. Створення категоріальної змінної – номінального фактору

pss$sex <- factor(
  x = pss$gender, 
  levels = c(1, 2), 
  labels = c("Чоловіки", "Жінки")
)

Аргументами цієї функції є: x – змінна (стовпчик в таблиці даних), яку треба перетворити на фактор. Після знаку = у вищенаведеному фрагменті змінна вказується рядком pss$gender. Тобто, спочатку йде ім’я таблиці даних, потім спеціальний символ-розділювач $ (знак долара), а потім назва стовпчика в таблиці.

Мова R має декілька альтернативних способів вказати ім’я однієї змінної: pss[["gender"]] або pss[[12]] – змінна gender розташована в дванадцятому стовпчику таблиці даних і до неї можна звернутися за номером 12. Подвійні квадратні дужки і знак долара використовуються для доступу до елементів списку, а таблиці даних є одним з варіантів списку. Більш сучасні функції часто використовують зручніший спосіб передачі змінних: в них можна окремому аргументу (зазвичай він має ім’я data) передати назву таблиці даних, а імена змінних вказуються в інших аргументах. Приклад такого способу ви можете побачити в аналізі надійності.

Аргумент levels (рівні фактора) має отримати вектор значень, які може приймати вхідна змінна (в даному випадку це числа 1 і 2). Аргументу labels передається вектор рядків, що відповідають текстовим позначенням рівнів фактору. Створений функцією вектор-фактор присвоюється новому стовпчику таблиці pss з назвою sex. Як бачимо, тут використовується спосіб звертання до змінних в таблиці даних з використанням знаку долара.

Інші важливі перетворення змінних, які часто застосовуються в психологічних дослідженнях, включають в себе: 1) Обчислення інтегральних показників (шкал); 2) Категоризація неперервних змінних; 3) Перекодування одних значень змінної на інші; 4) Трансформації типу логарифм, квадратний корінь, піднесення у степінь тощо. Приклади таких перетворень наведені у фрагменті коду нижче. Для виконання багатьох перетворень зручніше за все використовувати функцію mutate() з пакету dplyr. Її першим аргументом є таблиця даних, яка містить необхідні змінні:

Фрагмент коду 6. Основні трансформації змінних

## Перевертання шкали, Сумарний бал, Категоризація неперервної змінної
library(dplyr)

pss <- mutate(
  pss, 
  b4 = 4 - b4, b5 = 4 - b5, 
  b7 = 4 - b7, b8 = 4 - b8,
  score1 = b1 + b2 + b3 + b6 + b9 + b10,
  score2 = b4 + b5 + b7 + b8,
  score = score1 + score2,
  group = cut(score, breaks = 4, include.lowest = TRUE)
)

# Створення змінної через перекодування існуючої
library(car)

pss$fin <- Recode(
  pss$fin_state, as.factor = TRUE,
  recodes = "1:2 = 'A'; 3 = 'B'; 4:5 = 'C'"
)

Всі інші аргументи, вказані через кому, визначають ті трансформації, які необхідно здійснити з існуючими змінними, наприклад: 1) для змінних b4, b5, b7, b8 перевертається шкала (це питання із зворотним ключем); 2) обчислюються три інтегральні показники score1 і score2 як сума балів за прямі і зворотні питання шкали PSS, а потім утворюється змінна score як їхня сума; 3) Змінна score розбивається на чотири рівних діапазони (категоризується) функцією cut().

У другій частині наведеного фрагменту відбувається перекодування категоріальної змінної fin_state (фінансовий стан сім’ї досліджуваного) за допомогою функції recode() з пакету car. Її п’ять значень перекодовуються у три категорії A, B і C, оскільки наповненість першої і п’ятої категорій («Не вистачає грошей на їжу» та «Можемо купувати все, що захочемо») є недостатньою. Аргументу recodes передається рядок, в якому вказується схема перекодування існуючих значень у нові. Створений фактор fin з трьома рівнями буде використаний пізніше при проведенні дисперсійного аналізу.