Main Content

removecats

categorical 数组中删除类别

说明

示例

B = removecats(A)categorical 数组 A 中删除未使用的类别。输出 categorical 数组 BA 具有相同的大小和值。但是,B 的类别可能较少。

示例

B = removecats(A,oldcats) 删除 oldcats 指定的类别。该函数删除类别,但不删除任何数组元素。因此 B 中与 A 中属于 oldcats 所指定任何类别的元素相对应的那些元素将变为未定义元素。

示例

全部折叠

创建一个表示四个人所属政治团体的分类数组。

A = categorical({'republican' 'democrat' 'democrat' 'republican'},...
    {'democrat' 'republican' 'independent'})
A = 1x4 categorical
     republican      democrat      democrat      republican 

A 是一个 1×4 分类数组。

汇总分类数组 A

summary(A)
     democrat      republican      independent 
     2             2               0           

A 有三个类别。democrat 在数组中出现两次,republican 在数组中出现两次,而未使用 independent

删除未使用的类别 independent

B = removecats(A)
B = 1x4 categorical
     republican      democrat      democrat      republican 

BA 的值相同。

显示 B 的类别。

categories(B)
ans = 2x1 cell
    {'democrat'  }
    {'republican'}

B 具有的类别比 A 少。

创建一个分类数组 A,其中包含交通方式。

A = categorical({'plane' 'car'; 'train' 'car'; 'plane' 'car'})
A = 3x2 categorical
     plane      car 
     train      car 
     plane      car 

A 是一个 3×2 分类数组。

显示 A 的类别。

categories(A)
ans = 3x1 cell
    {'car'  }
    {'plane'}
    {'train'}

A 包含三个类别:carplanetrain

删除类别 train

B = removecats(A,'train')
B = 3x2 categorical
     plane            car 
     <undefined>      car 
     plane            car 

源自类别 train 的元素现在未定义。

显示 B 的类别。

categories(B)
ans = 2x1 cell
    {'car'  }
    {'plane'}

B 具有的类别比 A 少。

创建一个 categorical 数组。此数组有许多不同类别可以表示“是”和“否”。

C = categorical(["Y","Yes","N","No","Yes","Y"])
C = 1x6 categorical
     Y      Yes      N      No      Yes      Y 

categories(C)
ans = 4x1 cell
    {'N'  }
    {'No' }
    {'Y'  }
    {'Yes'}

您可以使用pattern匹配多个类别名称。例如,要指定以 Y 开头的类别名称,可以使用通配符模式。要创建通配符模式,请使用 wildcardPattern 函数。

删除名称以 Y 开头的类别。removecats 函数删除类别,但不删除输入数组的任何元素。因此,属于名称以 Y 开头的类别的元素现在是未定义的值。

C = removecats(C,"Y"+wildcardPattern)
C = 1x6 categorical
  Columns 1 through 5

     <undefined>      <undefined>      N      No      <undefined> 

  Column 6

     <undefined> 

categories(C)
ans = 2x1 cell
    {'N' }
    {'No'}

输入参数

全部折叠

输入数组,指定为 categorical 数组。

要删除的类别,指定为字符串数组、字符向量、字符向量元胞数组或 pattern 标量。默认值是 A 中的所有未使用类别。

提示

  • 对于 A 的任何未使用的类别,~ismember(categories(A),unique(A)) 返回逻辑值 1 (true)。

扩展功能

版本历史记录

在 R2013b 中推出