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

Примечание

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

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

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

Загрузка демонстрационных данных.

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

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

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

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

size = ordinal(AllSizes);
getlevels(size)
ans = 1x3 ordinal array
     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 array
     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 array
     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 array
     Male      Female 

Уровни находятся в недавно заданном порядке.

Отобразите данные на графике в новом порядке.

Чертите диаграммы веса полом.

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

Порядок диаграмм соответствует новому порядку уровня.

Смотрите также

| | | |

Связанные примеры

Больше о