Примечание
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')
Прямоугольные графики отображаются в том же алфавитном порядке, что и 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')
Порядок поочередных графиков соответствует новому порядку уровней.
fitlm | getlevels | nominal | ordinal | reorderlevels