Примечание
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