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 去找到年降水量所对应的区间序号,再用它去取出对应的湿润区等级。
英文版