主要内容

removecats

从分类数组中删除类别

说明

B = removecats(A) 从分类数组中删除类别。默认情况下,removecats 会删除所有未使用的类别。输出分类数组 B 与输入 A 具有相同的大小和值。但是,B 的类别可能较少。

示例

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

示例

示例

全部折叠

创建一个包含部分未使用类别的分类数组。当分类数组包含未使用的类别时,这意味着数组中没有元素属于该类别。

A = categorical(["red" "blue" "blue" "blue" "red" "blue"], ...
                ["black" "blue" "red" "green"])
A = 1×6 categorical
     red      blue      blue      blue      red      blue 

显示类别。

categories(A)
ans = 4×1 cell
    {'black'}
    {'blue' }
    {'red'  }
    {'green'}

汇总分类数组。汇总显示没有属于类别 blackgreen 的元素。

summary(A)
A: 1×6 categorical

     black      blue      red      green      <undefined> 
     0          4         2        0          0           

删除未使用的类别。

B = removecats(A)
B = 1×6 categorical
     red      blue      blue      blue      red      blue 

BA 的值相同。

显示 B 的类别。新分类数组的类别较少。

categories(B)
ans = 2×1 cell
    {'blue'}
    {'red' }

B 进行汇总。汇总显示它没有未使用的类别。

summary(B)
B: 1×6 categorical

     blue      red      <undefined> 
     4         2        0           

创建一个分类数组。

A = categorical(["plane" "car" "train" "car" "plane" "car"])
A = 1×6 categorical
     plane      car      train      car      plane      car 

显示其类别。

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

删除类别 car。属于该类别的元素现在未定义。

B = removecats(A,"car")
B = 1×6 categorical
     plane      <undefined>      train      <undefined>      plane      <undefined> 

显示 B 的类别。它比 A 少一个类别。

categories(B)
ans = 2×1 cell
    {'plane'}
    {'train'}

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

C = categorical(["Y" "Yes" "N" "No" "Yes" "Y"])
C = 1×6 categorical
     Y      Yes      N      No      Yes      Y 

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

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

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

C = removecats(C,"Y"+wildcardPattern)
C = 1×6 categorical
     <undefined>      <undefined>      N      No      <undefined>      <undefined> 

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

输入参数

全部折叠

输入数组,指定为分类数组。

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

提示

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

扩展功能

全部展开

版本历史记录

在 R2013b 中推出