Переупорядочить уровни категорий

Примечание

The nominal и ordinal типы данных массива не рекомендованы. Чтобы представлять упорядоченные и неупорядоченные дискретные нечисловые данные, используйте вместо этого тип данных Категориальные Массивы.

Переупорядочение уровней категорий в порядковых массивах

В этом примере показано, как переупорядочить уровни категорий в порядковом массиве с помощью reorderlevels.

Загрузите выборочные данные.

AllSizes = {'medium','large','small','small','medium',...
            'large','medium','small'};

Созданная переменная, AllSizes, - массив ячеек из векторов символов, содержащий измерения размера на восьми объектах.

Создайте порядковый массив.

Преобразование AllSizes в порядковый массив без указания порядка уровней категорий.

size = ordinal(AllSizes);
getlevels(size)
ans = 1x3 ordinal
     large      medium      small 

По умолчанию категории упорядочиваются по их меткам в возрастающем алфавитном порядке large <medium <small.

Сравните элементы.

Проверяйте, является ли первый объект (который имеет размер medium) меньше второго объекта (который имеет размер large).

size(1) < size(2)
ans = logical
   0

Логическое значение 0 указывает, что средний объект не меньше, чем большой объект.

Переупорядочить уровни категорий.

Переупорядочить уровни категорий так, чтобы small <medium <large.

size = reorderlevels(size,{'small','medium','large'});
getlevels(size)
ans = 1x3 ordinal
     small      medium      large 

Сравните элементы.

Проверьте, что первый объект теперь меньше, чем второй.

size(1) < size(2)
ans = logical
   1

Логическое значение 1 указывает, что ожидаемое неравенство теперь сохранено.

Переупорядочение уровней категорий в номинальных массивах

В этом примере показано, как переупорядочить уровни категорий в номинальных массивах с помощью reorderlevels. По определению номинальные категории массивов не имеют естественного упорядоченного расположения. Однако для отображения или анализа может потребоваться изменить порядок уровней. Для примера при подборе регрессионной модели с категориальными ковариатами fitlm использует первый уровень номинальной независимой переменной в качестве ссылочной категории.

Загрузите выборочные данные.

Массив набора данных, hospital, содержит переменные, измеренные на 100 пациентах выборки. Переменная Weight содержит вес каждого пациента. Переменная Sex - номинальная переменная, содержащая пол, Male или Female, для каждого пациента.

load hospital
getlevels(hospital.Sex)
ans = 1x2 nominal
     Female      Male 

По умолчанию порядок номинальных категорий находится в возрастающем алфавитном порядке меток.

Построение графика данных, сгруппированных по уровням категорий.

Нарисуйте прямоугольные графики веса, сгруппированные по полу.

figure
boxplot(hospital.Weight,hospital.Sex)
title('Weight by Gender')

Figure contains an axes. The axes with title Weight by Gender contains 14 objects of type line.

Прямоугольные графики появляются в том же алфавитном порядке, возвращенном getlevels.

Изменение порядка категорий.

Изменение порядка уровней категорий.

hospital.Sex = reorderlevels(hospital.Sex,{'Male','Female'});
getlevels(hospital.Sex)
ans = 1x2 nominal
     Male      Female 

Уровни указаны в новом порядке.

Постройте график данных в новом порядке.

Рисуйте коробчатые графики веса по полу.

figure
boxplot(hospital.Weight,hospital.Sex)
title('Weight by Gender')

Figure contains an axes. The axes with title Weight by Gender contains 14 objects of type line.

Порядок прямоугольных графиков соответствует новому порядку уровней.

См. также

| | | |

Похожие примеры

Подробнее о