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.

Переупорядочить категории с учетом снижения стоимости поездок на train.

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++ с помощью Coder™ MATLAB ®

.
Введенный в R2013b