组合分类数组
此示例演示如何组合类别变量数组。
创建分类数组
让我们创建一个类别值数组,其中存储了一组25名学生的午休饮料偏好。 A.
In [ ]:
Pkg.add("CategoricalArrays")
In [ ]:
using Random, CategoricalArrays
Random.seed!(123)
A = rand(["молоко", "сок", "вода"], 25)
A = categorical(A, levels=["молоко", "сок", "вода"], ordered=true) # Передаем вектор меток чтобы задать их порядок
Out[0]:
分类数组的汇总统计信息:
In [ ]:
Pkg.add( "FreqTables" )
In [ ]:
using FreqTables
freqtable(A)
Out[0]:
让我们创建另一个类别数组,其中包含来自该组的28名学生的愿望。 B.
In [ ]:
B = rand(["молоко", "сок", "вода"], 28) # Более сжатый синтаксис
B = categorical(B)
Out[0]:
统计摘要:
In [ ]:
freqtable(B)
Out[0]:
组合分类数组
让我们结合类中的数据 A 和 B 成一个分类数组 Group1.
In [ ]:
Group1 = vcat(A, B)
Out[0]:
统计摘要:
In [ ]:
freqtable(Group1)
Out[0]:
使用其他类别创建分类数组
创建分类数组 Group2,包含50名学生的愿望与一个额外的饮料选项:苏打水。
In [ ]:
Group2 = rand(["сок", "молоко", "газировка", "вода"], 50)
Group2 = categorical( Group2 )
Out[0]:
统计摘要:
In [ ]:
freqtable(Group2)
Out[0]:
组合不同类别的数组
结合来自 Group1 和 Group2.
In [ ]:
students = [Group1; Group2]
Out[0]:
汇总统计。 组合时,第二个数组(soda)特有的类别被添加到第一个数组(milk,water,juice,soda)中的类别列表的末尾。
In [ ]:
freqtable(students)
Out[0]:
要更改类别数组中类别的顺序,请使用以下函数 levels!.
In [ ]:
levels!(students, ["сок", "молоко", "вода", "газировка"])
levels(students)
Out[0]:
组合分类数组
要查找存在于以下类别的唯一值 Group1 和 Group2,您可以使用该功能 union.
In [ ]:
C = union(Group1, Group2)
Out[0]:
结论
此示例中的所有分类数组都是无序的。 要组合有序类别数组,它们必须具有相同的类别集,包括它们的顺序。