НачатьНачать бесплатно

Создание упорядоченного фактора

Посмотрите на график справа. Он выглядит неплохо, однако обратите внимание на порядок столбцов! При создании фактора порядок уровней не был задан, поэтому R расположил их в алфавитном порядке. Между тем кредитные рейтинги имеют чёткую иерархию — и ваши графики должны её отражать!

Для справки: порядок кредитных рейтингов от наименее рискованных к наиболее рискованным:

AAA, AA, A, BBB, BB, B, CCC, CC, C, D

Чтобы упорядочить фактор, воспользуйтесь одним из двух способов.

При создании фактора укажите ordered = TRUE и перечислите уникальные уровни от наименьшего к наибольшему:

credit_rating <- c("AAA", "AA", "A", "BBB", "AA", "BBB", "A")

credit_factor_ordered <- factor(credit_rating, ordered = TRUE, 
                                levels = c("AAA", "AA", "A", "BBB"))

Для уже существующего неупорядоченного фактора, например credit_factor, используйте функцию ordered():

ordered(credit_factor, levels = c("AAA", "AA", "A", "BBB"))

Оба способа дают одинаковый результат:

credit_factor_ordered

[1] AAA AA  A   BBB AA  BBB A  
Levels: AAA < AA < A < BBB

Обратите внимание на символ <, который указывает порядок уровней — раньше его не было!

Это упражнение является частью курса

Введение в R для финансов

Посмотреть курс

Инструкции к упражнению

  • Символьный вектор credit_rating уже находится в вашем рабочем пространстве.
  • Примените функцию unique() к вектору credit_rating, чтобы вывести только уникальные значения. Они станут уровнями вашего фактора.
  • С помощью функции factor() создайте упорядоченный фактор для credit_rating и сохраните его в переменную credit_factor_ordered. Не забудьте указать уровни от наименее рискованных к наиболее рискованным!
  • Постройте график для credit_factor_ordered и оцените новый порядок столбцов.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Use unique() to find unique words
unique(___)

# Create an ordered factor
credit_factor_ordered <- factor(___, ordered = ___, levels = c(___))

# Plot credit_factor_ordered
Редактировать и запускать код