Примечание
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')
Прямоугольные графики появляются в том же алфавитном порядке, возвращенном 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