6.9 按序号对齐分组:可重复分组
有时候每条记录计算出的分组序号是多个,我们希望将记录按照序号数列重复性的分配到多个组中。
根据发帖记录表,按标签将帖子分组,并统计各个标签出现频数。发帖记录表部分数据如下:
ID | Title | Author | Label |
---|---|---|---|
1 | Easy analysis of Excel | 2 | Excel,ETL,Import,Export |
2 | Early commute: Easy to pivot excel | 3 | Excel,Pivot,Python |
3 | Initial experience of SPL | 1 | Basics,Introduction |
4 | Talking about set and reference | 4 | Set,Reference,Dispersed,SQL |
5 | Early commute: Better weapon than Python | 4 | Python,Contrast,Install |
… | … | … | … |
在SPL中函数A.align(n,y)的选项@r ,用于在对齐分组时按序号重复性分组。
脚本:
A | |
---|---|
1 | =T(“PostRecord.txt”) |
2 | =A1.conj(Label.split(“,”)).id() |
3 | =A1.align@ar(A2.len(),A2.pos(Label.split(“,”))) |
4 | =A3.new(A2(#):Label,~.count():Count).sort@z(Count) |
A1:查询发帖记录表。
A2:将标签按逗号分隔后合并到一个序列,获得没有重复值的全部标签。
A3:使用函数A.align@r (n,y)的,按照每个帖子的标签在全部标签中的定位分组,选项@r 。
A4:统计每个标签的帖子数量,按降序排列。
运行结果:
Label | Count |
---|---|
SPL | 7 |
Excel | 6 |
Basics | 5 |
… | … |