11. 连续累计计数
使用文本数据 meteorolog.txt 存储的气象数据,请统计每个观测站中,一年中平均气温 TEMP 连续上升以及连续下降的最大天数。
参考答案:
解答:
A | |
---|---|
1 | =T(“meteorolog.txt”,STATION,DATE,TEMP) |
2 | =A1.derive(ascDays, desDays) |
3 | =A2.group(STATION) |
4 | >A3.(~.(if(TEMP>TEMP[-1]: (ascDays=ascDays[-1]+1,desDays=0), TEMP<TEMP[-1]: (ascDays=0, desDays=desDays[-1]+1); (ascDays=0, desDays=0)))) |
5 | =A3.new(STATION,~.max(ascDays):ascDays,~.max(desDays):desDays) |
A1 从文件中获取所需的字段:
A2 在其基础上产生新的字段 ascDays 和 desDays,准备记录每一天为止的连续升温或降温天数。A3 将 A2 中的数据按观测站分组。
A4 在每个组中循环,为 ascDays 和 desDays 赋值,如果当天温度上升,则 ascDays 天数增加 1,同时 desDays 归 0;如果温度下降则相反;如果温度不变则两者均归 0。A4 完成赋值后,可以在 A3 的分组中,选择某个观测站的数据查看效果,如 TAISHAN 站的数据如下:
有了这样的数据,在 A5 中就可以根据每个分组中,ascDays 和 desDays 的最大值,生成结果表了。
英文版