categorical 是用于存储具有以下特征的数据的数据类型:此类数据值来自离散分类有限集合。使用分类数组的一种常见替代方法是使用字符数组或字符向量元胞数组。要比较字符数组和字符向量元胞数组中的值,必须使用略微复杂的 strcmp。使用分类数组时,您可以像比较数值数组一样,使用逻辑运算符 eq (==) 比较元素。使用分类数组的另一种常见替代方法是将使用整数的分类数据存储在数值数组中。使用数值数组会丢失类别名称中的所有有用描述信息,还容易让人认为这些整数值只具有其常规的数值意义,而分类数据则不同。
分类数组是一种方便且节省内存的容器,适用于有限离散类别集合中的非数值数据。当类别按照有意义的数学方法排序时,分类数组会特别有用,例如对于一个由离散类别集合 {‘small’,‘medium’,‘large’} 中的条目(其中 small < medium < large)组成的数组,便是如此。
字符数组或字符向量元胞数组不可采用字母顺序之外的排序方式。因此,不可以进行不相等比较,例如大于和小于。使用分类数组时,您可以使用关系运算来测试相等性,并执行具有有意义的数学排序的逐元素比较。
以下