exponenta event banner

reordercats

Изменение порядка категорий в категориальном массиве

Описание

пример

B = reordercats(A) переупорядочивает категории в категориальном массиве, A, в алфавитно-цифровом порядке.

Порядок категорий используется такими функциями, как summary и histogram. Если категориальный массив порядковый, порядок категорий определяет их математический порядок. Первая указанная категория является наименьшей, а последняя категория является самой большой.

пример

B = reordercats(A,neworder) помещает категории в порядок, указанный в neworder.

Примеры

свернуть все

Создайте два категориальных массива, X и Y.

X = categorical({'frog';'cat';'cat';'ant';'frog'})
X = 5x1 categorical
     frog 
     cat 
     cat 
     ant 
     frog 

Y = categorical({'deer';'bear';'eagle';'deer'})
Y = 4x1 categorical
     deer 
     bear 
     eagle 
     deer 

X является категориальным массивом 5 на 1. Категории X являются отсортированными уникальными значениями из массива: {'ant';'cat';'frog'}.

Y является категориальным массивом 4 на 1. Категории Y являются отсортированными уникальными значениями из массива: {'bear';'deer';'eagle'}.

Связать X и Y в единый категориальный массив, A.

A = [X;Y]
A = 9x1 categorical
     frog 
     cat 
     cat 
     ant 
     frog 
     deer 
     bear 
     eagle 
     deer 

vertcat добавляет значения из Y к значениям из X.

Перечислите категории категориального массива, A.

acats = categories(A)
acats = 6x1 cell
    {'ant'  }
    {'cat'  }
    {'frog' }
    {'bear' }
    {'deer' }
    {'eagle'}

vertcat добавляет категории Y в категории из X. Категории A не в алфавитном порядке.

Изменить порядок категорий A в алфавитном порядке.

B = reordercats(A)
B = 9x1 categorical
     frog 
     cat 
     cat 
     ant 
     frog 
     deer 
     bear 
     eagle 
     deer 

Выходной категориальный массив, B, имеет те же элементы в том же порядке, что и входной категориальный массив, A.

Перечислите категории категориального массива, B.

bcats = categories(B)
bcats = 6x1 cell
    {'ant'  }
    {'bear' }
    {'cat'  }
    {'deer' }
    {'eagle'}
    {'frog' }

Категории B в алфавитном порядке.

Создайте категориальный массив, содержащий цвет различных элементов.

A = categorical({'red';'green';'blue';'red';'green';'red';'blue';'blue'})
A = 8x1 categorical
     red 
     green 
     blue 
     red 
     green 
     red 
     blue 
     blue 

A является категориальным массивом 8 на 1.

Отображение категорий A.

categories(A)
ans = 3x1 cell
    {'blue' }
    {'green'}
    {'red'  }

Категории A находятся в алфавитном порядке и не имеют математического значения.

Измените порядок категорий в соответствии с порядком, обычно используемым для цветов.

B = reordercats(A,{'red','green','blue'})
B = 8x1 categorical
     red 
     green 
     blue 
     red 
     green 
     red 
     blue 
     blue 

B содержит те же значения, что и A.

Отображение категорий B.

categories(B)
ans = 3x1 cell
    {'red'  }
    {'green'}
    {'blue' }

B не является порядковым и порядок категорий не имеет математического значения. Хотя категории появляются в порядке цветового спектра, реляционные операции, такие как больше и меньше, не имеют значения.

Создайте порядковый категориальный массив, A, содержащие виды транспорта. Заказывайте категории на основе средней цены командировки.

A = categorical({'plane';'car'; 'train';'car';'plane';'car'},...
    {'car','train','plane'},'Ordinal',true)
A = 6x1 categorical
     plane 
     car 
     train 
     car 
     plane 
     car 

A является порядковым категориальным массивом 6 на 1.

Отображение категорий A.

categories(A)
ans = 3x1 cell
    {'car'  }
    {'train'}
    {'plane'}

С тех пор A порядковый номер, car < train < plane.

Изменить порядок категорий, с тем чтобы отразить снижение стоимости проезда на поезде.

B = reordercats(A,{'train','car','plane'})
B = 6x1 categorical
     plane 
     car 
     train 
     car 
     plane 
     car 

B содержит те же значения, что и A.

Отображение категорий B.

categories(B)
ans = 3x1 cell
    {'train'}
    {'car'  }
    {'plane'}

Математический порядок категорий теперь train < car < plane. Результаты реляционных операций, min, и max отражают новый порядок категорий.

Создание категориального массива, A, содержащие виды транспорта.

A = categorical({'plane';'car';'train';'car';'car';'plane';'car'})
A = 7x1 categorical
     plane 
     car 
     train 
     car 
     car 
     plane 
     car 

Отображение категорий A.

categories(A)
ans = 3x1 cell
    {'car'  }
    {'plane'}
    {'train'}

Переупорядочить категории от наименьших до наиболее часто встречающихся в A.

B = countcats(A);
[C,neworder] = sort(B);
neworder
neworder = 3×1

     3
     2
     1

D = reordercats(A,neworder);
categories(D)
ans = 3x1 cell
    {'train'}
    {'plane'}
    {'car'  }

Поскольку countcats подсчитывает вхождения каждой категории, neworder описывает, как переупорядочить категории, а не элементы A.

Входные аргументы

свернуть все

Категориальный массив, заданный как вектор, матрица или многомерный массив. Если A является порядковым категориальным массивом, переупорядочивание категорий меняет математическое значение. Следовательно, реляционные операторы, такие как больше и меньше, могут возвращать различные результаты.

Новый заказ категории для B, задается как массив ячеек символьных векторов, строковый массив или числовой вектор. neworder должно быть перестановкой categories(A).

Совет

  • Чтобы преобразовать категориальный массив, B, в порядковый категориальный массив, используйте B = categorical(B,'Ordinal',true). Можно указать порядок категорий с помощью B = categorical(B,valueset,'Ordinal',true), где порядок значений в valueset определяет порядок категорий.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2013b