# Combine Categorical Arrays

This example shows how to combine two categorical arrays.

### Create Categorical Arrays

Create a categorical array, `A`, containing the preferred lunchtime beverage of 25 students in classroom A.

```rng('default') A = randi(3,[25,1]); A = categorical(A,1:3,{'milk' 'water' 'juice'});```

`A` is a 25-by-1 categorical array with three distinct categories: `milk`, `water`, and `juice`.

Summarize the categorical array, `A`.

`summary(A)`
``` milk 6 water 5 juice 14 ```

Six students in classroom A prefer milk, five prefer water, and fourteen prefer juice.

Create another categorical array, `B`, containing the preferences of 28 students in classroom B.

```B = randi(3,[28,1]); B = categorical(B,1:3,{'milk' 'water' 'juice'});```

`B` is a 28-by-1 categorical array containing the same categories as `A`.

Summarize the categorical array, `B`.

`summary(B)`
``` milk 9 water 8 juice 11 ```

Nine students in classroom B prefer milk, eight prefer water, and eleven prefer juice.

### Concatenate Categorical Arrays

Concatenate the data from classrooms A and B into a single categorical array, `Group1`.

`Group1 = [A;B];`

Summarize the categorical array, `Group1`.

`summary(Group1)`
``` milk 15 water 13 juice 25 ```

`Group1` is a 53-by-1 categorical array with three categories: `milk`, `water`, and `juice`.

### Create Categorical Array with Different Categories

Create a categorical array, `Group2`, containing data from 50 students who were given the additional beverage option of soda.

```Group2 = randi(4,[50,1]); Group2 = categorical(Group2,1:4,{'juice' 'milk' 'soda' 'water'});```

Summarize the categorical array, `Group2`.

`summary(Group2)`
``` juice 12 milk 14 soda 10 water 14 ```

`Group2` is a 50-by-1 categorical array with four categories: `juice`, `milk`, `soda`, and `water`.

### Concatenate Arrays with Different Categories

Concatenate the data from `Group1` and `Group2`.

`students = [Group1;Group2];`

Summarize the resulting categorical array, `students`.

`summary(students)`
``` milk 29 water 27 juice 37 soda 10 ```

Concatenation appends the categories exclusive to the second input, `soda`, to the end of the list of categories from the first input, `milk`, `water`, `juice`, `soda`.

Use `reordercats` to change the order of the categories in the categorical array, `students`.

```students = reordercats(students,{'juice','milk','water','soda'}); categories(students)```
```ans = 4x1 cell {'juice'} {'milk' } {'water'} {'soda' } ```

### Union of Categorical Arrays

Use the function `union` to find the unique responses from `Group1` and `Group2`.

`C = union(Group1,Group2)`
```C = 4x1 categorical milk water juice soda ```

`union` returns the combined values from `Group1` and `Group2` with no repetitions. In this case, `C` is equivalent to the categories of the concatenation, `students`.

All of the categorical arrays in this example were nonordinal. To combine ordinal categorical arrays, they must have the same sets of categories including their order.