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 = категориальный (B, valueset, 'Порядковый', верный), где порядок значений в valueset задает порядок категории.

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

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

| | | | | |

Введенный в R2013b