# mergecats

Merge categories in categorical array

## Syntax

• ``B = mergecats(A,oldcats)``
example
• ``B = mergecats(A,oldcats,newcat)``
example

## Description

example

````B = mergecats(A,oldcats)` merges two or more categories in `A` into the first category, `oldcats(1)`. Any values in `A` from `oldcats` become `oldcats(1)` in `B`.```

example

````B = mergecats(A,oldcats,newcat)` merges `oldcats` into a single new category, `newcat`. Any values in `A` from `oldcats` become `newcat` in `B`.```

## Examples

collapse all

### Merge Two Categories into One

Create a categorical array containing various colors.

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

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

Display the categories of `A`.

`categories(A)`
```ans = 'blue' 'pink' 'red'```

The three categories are in alphabetical order.

Merge the categories `red` and `pink` into the category `red`. Specify `red` first in `oldcats` to use it as the merged category.

```oldcats = {'red','pink'}; B = mergecats(A,oldcats)```
```B = red blue red red blue red ```

`mergecats` replaces the value `pink` from `A(3)` with `red`.

Display the categories of `B`.

`categories(B)`
```ans = 'blue' 'red'```

`B` has two categories instead of three.

### Merge Alphabetically Listed Categories

Create a categorical array containing various items.

`A = categorical({'shirt' 'pants'; 'shoes' 'shirt'; 'dress' 'belt'})`
```A = shirt pants shoes shirt dress belt ```

Display the categories of `A`.

`categories(A)`
```ans = 'belt' 'dress' 'pants' 'shirt' 'shoes'```

The five categories are in alphabetical order.

Merge the categories `belt` and `shoes` into a new category called `other`.

`B = mergecats(A,{'belt' 'shoes'},'other')`
```B = shirt pants other shirt dress other ```

The value `other` replaces all instances of `belt` and `shoes`.

Display the categories of `B`.

`categories(B)`
```ans = 'other' 'dress' 'pants' 'shirt'```

`B` has four categories and the order is no longer alphabetical. `other` appears in place of `belt`.

### Merge Categories of Ordinal Categorical Array

Create an ordinal categorical array.

`A = categorical([1 2 3 2 1],1:3,{'poor','fair','good'},'Ordinal',true)`
```A = poor fair good fair poor ```

Display the categories of `A`.

`categories(A)`
```ans = 'poor' 'fair' 'good'```

Since `A` is ordinal, the categories have the mathematical ordering `poor < fair < good`.

Consider all `fair` or `poor` values to be `bad`. Since `A` is ordinal, the categories to merge must be consecutive.

`B = mergecats(A,{'fair' 'poor'},'bad')`
```B = bad bad good bad bad ```

The value `bad` replaces all instances of `fair` and `poor`.

Display the categories of `B`.

`categories(B)`
```ans = 'bad' 'good'```

`B` has two categories with the mathematical ordering: `bad < good`.

## Input Arguments

collapse all

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

Categorical array, specified as a vector, matrix, or multidimensional array.

### `oldcats` — Categories to mergecell array of strings

Categories to merge, specified as a cell array of strings. If `A` is ordinal, the categories to merge must be consecutive.

### `newcat` — New category`oldcats(1)` (default) | string

New category, specified as a string.