reordercats

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

Синтаксис

B = reordercats(A)
B = reordercats(A,neworder)

Описание

пример

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

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

пример

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

Примеры

свернуть все

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

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

Y = categorical({'deer';'bear';'eagle';'deer'})
Y = 4x1 categorical array
     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 array
     frog 
     cat 
     cat 
     ant 
     frog 
     deer 
     bear 
     eagle 
     deer 

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

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

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

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

Переупорядочьте категории A в алфавитный порядок.

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

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

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

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

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

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

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

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

Отобразите категории A.

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

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

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

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

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

Отобразите категории B.

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

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

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

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

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

Отобразите категории A.

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

Поскольку A является порядковым, car < train < plane.

Переупорядочьте категории, чтобы отразить уменьшение в стоимости перемещения train.

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

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

Отобразите категории B.

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

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

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

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

Отобразите категории A.

categories(A)
ans = 3x1 cell array
    {'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 array
    {'train'}
    {'plane'}
    {'car'  }

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

Входные параметры

свернуть все

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

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

Советы

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

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

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

| | | | | |

Введенный в R2013b

Для просмотра документации необходимо авторизоваться на сайте