Accelerating the pace of engineering and science

# Documentation Center

• Trial Software
• Product Updates

# reordercats

Reorder categories in categorical array

## Description

example

B = reordercats(A) reorders the categories in the categorical array, A, to be in alphanumeric order.

The order of the categories is used by functions such as summary and hist. Furthermore, if the categorical array is ordinal, the order of the categories defines their mathematical ordering. The first category specified is the smallest and the last category is the largest.

example

B = reordercats(A,neworder) puts the categories in the order specified by neworder.

## Examples

expand all

### Alphabetize Categories of Nonordinal Categorical Array

Create two categorical arrays, X and Y.

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

Y = categorical({'deer';'bear';'eagle';'deer'})```
```X =

frog
cat
cat
ant
frog

Y =

deer
bear
eagle
deer
```

X is a 5-by-1 categorical array. The categories of X are the sorted unique values from the array: {'ant';'cat';'frog'}.

Y is a 4-by-1 categorical array. The categories of Y are the sorted unique values from the array: {'bear';'deer';'eagle'}.

Concatenate X and Y into a single categorical array, A.

`A = [X;Y]`
```A =

frog
cat
cat
ant
frog
deer
bear
eagle
deer
```

vertcat appends the values from Y to the values from X.

List the categories of the categorical array, A.

`acats = categories(A)`
```acats =

'ant'
'cat'
'frog'
'bear'
'deer'
'eagle'```

vertcat appends the categories of Y to the categories from X. The categories of A are not in alphabetical order.

Reorder the categories of A into alphabetical order.

`B = reordercats(A)`
```B =

frog
cat
cat
ant
frog
deer
bear
eagle
deer
```

The output categorical array, B, has the same contents as the input categorical array, A.

List the categories of the categorical array, B.

`bcats = categories(B)`
```bcats =

'ant'
'bear'
'cat'
'deer'
'eagle'
'frog'
```

The categories of B are in alphabetical order.

### Reorder Categories in Nonordinal Categorical Array

Create a categorical array containing the color of various items.

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

red
green
blue
red
green
red
blue
blue ```

A is an 8-by-1 categorical array.

Display the categories of A.

`categories(A)`
```ans =

'blue'
'green'
'red'```

The categories of A are in alphabetical order and have no mathematical meaning.

Reorder the categories to match the order commonly used for colors.

`B = reordercats(A,{'red','green','blue'})`
```B =

red
green
blue
red
green
red
blue
blue ```

B contains the same values as A.

Display the categories of B.

`categories(B)`
```ans =

'red'
'green'
'blue'```

B is not ordinal and the order of the categories has no mathematical meaning. Although the categories appear in the order of the color spectrum, relational operations, such as greater than and less than, have no meaning.

### Reorder Categories in Ordinal Categorical Array

Create an ordinal categorical array, A, containing modes of transportation. Order the categories based on the average price of travel.

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

plane
car
train
car
plane
car
```

A is a 6-by-1 ordinal categorical array.

Display the categories of A.

`categories(A)`
```ans =

'car'
'train'
'plane'```

Since A is ordinal, car < train < plane.

Reorder the categories to reflect a decrease in the cost of train travel.

`B = reordercats(A,{'train','car','plane'})`
```B =

plane
car
train
car
plane
car ```

B contains the same values as A.

Display the categories of B.

`categories(B)`
```ans =

'train'
'car'
'plane'```

The mathematical ordering of the categories is now train < car < plane. The results from relational operations, min, and max reflect the new category ordering.

## Input Arguments

expand all

### A — Categorical arrayvector | matrix | multidimensional array

Categorical array, specified as a vector, matrix, or multidimensional array. If A is an ordinal categorical array, a reordering of the categories changes the mathematical meaning. Consequently, the relational operators, such as greater than and less than, might return different results.

### neworder — New category order for Bcell array of strings

New category order for B, specified as a cell array of strings. neworder must be a permutation of categories(A).

## More About

expand all

### Tips

• To convert the categorical array, B, to an ordinal categorical array, use B = categorical(B,'Ordinal',true). Furthermore, you can specify the order of the categories with B = categorical(B,valueset,'Ordinal',true) where the order of the values in valueset defines the category order.

## See Also

Was this topic helpful?