Documentation

This is machine translation

Translated by Microsoft
Mouse over text to see original. Click the button below to return to the English verison of the page.

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 character vectors

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

newcat — New categoryoldcats(1) (default) | character vector

New category, specified as a character vector.

Introduced in R2013b

Was this topic helpful?