4.11 组排序
有数据如下:
Class | Name | Maths |
---|---|---|
1 | Tom | 85 |
2 | John | 92 |
2 | Joan | 86 |
1 | Rocky | 85 |
2 | Ham | 92 |
1 | Kate | 83 |
1 | Rose | 75 |
2 | Nomy | 78 |
1 | Neil | 61 |
2 | Jack | 84 |
1 | Joe | 88 |
将数据按照班级分组、班级之间按照平均分降序排序,班级内部按成绩 (降序) 的规则排序:
脚本:
A | |
---|---|
1 | =T(“score.xlsx”).group(Class;~.sort@z(Maths):data,~.avg(Maths):avg) |
2 | =A1.sort@z(avg).(data).conj() |
A1 读入数据,按照 Class 分组,组内按照 Maths 逆序排序,算出每组的平均成绩
A2 将 A1 按平均成绩逆序排序,然后将所有班级合并成一个序列
运行结果:
Class | Name | Maths |
---|---|---|
2 | John | 92 |
2 | Ham | 92 |
2 | Joan | 86 |
2 | Jack | 84 |
2 | Nomy | 78 |
1 | Joe | 88 |
1 | Tom | 85 |
1 | Rocky | 85 |
1 | Kate | 83 |
1 | Rose | 75 |
1 | Neil | 61 |