主要内容

本页翻译不是最新的。点击此处可查看最新英文版本。

合并分类数组

此示例演示了如何合并分类数组。

创建分类数组

创建一个分类数组,其中包含教室 A 中的 25 个学生的首选午餐饮料。

rng("default")
A = randi(3,[25,1]);
A = categorical(A,1:3,["milk" "water" "juice"])
A = 25×1 categorical
     juice 
     juice 
     milk 
     juice 
     water 
     milk 
     milk 
     water 
     juice 
     juice 
     milk 
     juice 
     juice 
     water 
     juice 
     milk 
     water 
     juice 
     juice 
     juice 
     water 
     milk 
     juice 
     juice 
     juice 

汇总分类数组。

summary(A)
A: 25×1 categorical

     milk              6 
     water             5 
     juice            14 
     <undefined>       0 

创建另一个分类数组,其中包含教室 B 中的 28 个学生的首选饮料。

B = randi(3,[28,1]);
B = categorical(B,1:3,["milk" "water" "juice"])
B = 28×1 categorical
     juice 
     juice 
     water 
     water 
     milk 
     juice 
     milk 
     milk 
     milk 
     milk 
     juice 
     juice 
     milk 
     juice 
     milk 
     water 
     water 
     juice 
     juice 
     milk 
     water 
     water 
     water 
     juice 
     juice 
     milk 
     juice 
     water 

汇总分类数组。

summary(B)
B: 28×1 categorical

     milk              9 
     water             8 
     juice            11 
     <undefined>       0 

串联分类数组

将教室 A 和 B 中的数据串联为一个单独的分类数组 Group1

Group1 = [A;B]
Group1 = 53×1 categorical
     juice 
     juice 
     milk 
     juice 
     water 
     milk 
     milk 
     water 
     juice 
     juice 
     milk 
     juice 
     juice 
     water 
     juice 
     milk 
     water 
     juice 
     juice 
     juice 
     water 
     milk 
     juice 
     juice 
     juice 
     juice 
     juice 
     water 
     water 
     milk 
      ⋮

汇总分类数组 Group1

summary(Group1)
Group1: 53×1 categorical

     milk             15 
     water            13 
     juice            25 
     <undefined>       0 

创建具有不同类别的分类数组

创建一个分类数组 Group2,其中包含为其提供了额外的苏打饮料选择的 50 个学生的数据。

Group2 = randi(4,[50,1]);
Group2 = categorical(Group2,1:4,["juice" "milk" "soda" "water"])
Group2 = 50×1 categorical
     juice 
     juice 
     milk 
     water 
     milk 
     soda 
     juice 
     water 
     milk 
     soda 
     soda 
     water 
     water 
     soda 
     juice 
     juice 
     milk 
     water 
     milk 
     water 
     juice 
     water 
     milk 
     juice 
     milk 
     soda 
     milk 
     milk 
     water 
     soda 
      ⋮

汇总分类数组。

summary(Group2)
Group2: 50×1 categorical

     juice            12 
     milk             14 
     soda             10 
     water            14 
     <undefined>       0 

串联具有不同类别的数组

串联 Group1Group2 中的数据。

students = [Group1;Group2]
students = 103×1 categorical
     juice 
     juice 
     milk 
     juice 
     water 
     milk 
     milk 
     water 
     juice 
     juice 
     milk 
     juice 
     juice 
     water 
     juice 
     milk 
     water 
     juice 
     juice 
     juice 
     water 
     milk 
     juice 
     juice 
     juice 
     juice 
     juice 
     water 
     water 
     milk 
      ⋮

汇总生成的分类数组。串联操作会将第二个输入所独有的类别 soda 追加到第一个输入的类别列表的末尾:milkwaterjuicesoda

summary(students)
students: 103×1 categorical

     milk             29 
     water            27 
     juice            37 
     soda             10 
     <undefined>       0 

要更改分类数组中的类别顺序,请使用 reordercats 函数。

students = reordercats(students,["juice" "milk" "water" "soda"]);

categories(students)
ans = 4×1 cell
    {'juice'}
    {'milk' }
    {'water'}
    {'soda' }

分类数组的并集

要查找 Group1Group2 中的唯一响应,请使用 union 函数。

C = union(Group1,Group2)
C = 4×1 categorical
     milk 
     water 
     juice 
     soda 

union 返回 Group1Group2 的合并值并且没有重复项。在本例中,C 等效于串联的类别 students

此示例中的所有分类数组都不是有序的。要合并有序分类数组,它们必须具有相同的类别集合,包括其顺序。

另请参阅

| | | | | |

主题