14. 区间分段计算
在文件 meteorolog.txt 中,存储了一些观测站在 2023 年的气象数据。根据各个观测站的年降水量,判断它们所在地区的湿润程度。(年降水量超过 80cm 属于湿润区,40cm 至 80cm 属于半湿润区,20cm 至 40cm 属于半干旱区,小于或等于 20cm 属于干旱区)
参考答案:

解答:
| A | B | |
|---|---|---|
| 1 | 0 | Arid |
| 2 | 20 | Semi-arid |
| 3 | 40 | Semi-humid |
| 4 | 80 | Humid |
| 5 | =create(PRCP, Level).record([A1:B4]) | |
| 6 | =T(“meteorolog.txt”,STATION,DATE,PRCP) | =A6.groups(STATION; round(sum(PRCP), 2): TotalPRCP) |
| 7 | =B6.derive(A5.segp@r(PRCP, TotalPRCP).Level:HumidLevel) |
前 4 行填入降水区间表数据,A5 用它们建表如下:
A6 读入文件中的气象观测数据,B6 中分观测站统计年降水量,结果如下:

A7 中添加湿润区等级字段,其中使用 segp 函数在区间表中,根据 TotalPRCP 对应 PRCP 范围找到对应的等级,添加 @r 选项表示使用左开右闭区间。处理分区间计算时,也可以不去建立降水区间表,而是直接用序列去计算,如将 A7 中的数据改为 =B6.derive([B1:B4]([A1:A4].pseg@r(TotalPRCP)):HumidLevel),结果和上面是一致的,只不过用 pseg 去找到年降水量所对应的区间序号,再用它去取出对应的湿润区等级。


英文版