在已经分组的数据间插入汇总值,通常的做法是依次读入本组数据,直到数据发生变化,然后将本组数据和汇总值追加到新文件中,再读入下一组数据。硬编码的过程有些麻烦,集算器支持分组游标,可以自动读入整组数据。下面通过例子来看一下具体作法。
日志webdata.log有三列,列之间以逗号分隔,第一列是分组标志,后两列是数值,部分数据如下:
注意:第一组和第四组的分组标志相同。
现在要在每组数据之间插入第二列的平均值,以及一个空行,如下:
集算器代码:
A1=file("E: \\webdata.log").cursor(;",")
这句代码以游标的方式打开日志文件。函数cursor表示根据文件对象返回游标对象,使用逗号作为列分隔符(默认分隔符是tab),默认列名是_1,_2…_n,其中列_1是分组列。也可以指定列名,比如cursor(groupName,data1,data2;”,”)。
这句代码只是建立游标对象,并没有读入数据,实际的读入动作会在遇到语句for或函数fetch时触发。
B1=file("e:\\result.txt"),这句代码建立了一个文件对象,用来存储计算结果。
A2:for A1;_1
这句代码对游标A1进行循环读数,每次读入第一列(列名为_1)相同的一组数据,此时数据才会真正读入内存。
注意这里的for 语句。集算器有for cs,n这样的写法,这表示每次读入游标cs中的n条记录。而for cs;x表示每次读入游标cs中的一组记录,每组记录的x字段相同,数据需要按照x事先分组。本案例的数据已经分过组了,如果尚未分组,可以使用集算器的其他函数进行前期处理(比如游标排序函数sortx)。
语句for cs;x中的x也可以是表达式,即:每次读入多条数据,直到表达式x发生变化,比如:for A14 ;left(_1,4)。这句代码会判断第一列的前四个字符,只要前四个字符未发生变化,集算器就会把它归为一组。
B2-B4:这是for语句A2的循环体,用来对每组数据进行同样的数据处理。可以看到,for语句的作用范围用缩进就可以表示,而无需用括号或begin/end等标记。另外,循环变量用for所在单元格的格名就可以表示,即A2表示当前组对应的所有记录。如果用调试模式观察第一次循环,可以看到A2的值如下:
B2=B1.export@a(A2;",")
这句代码将A2追加到文件中。函数export可以将一组记录输出到文件中,选项@a表示追加。为了和源数据保持一致,这里使用逗号做分割符(默认分割符是tab)。如果在第一次循环时打开result.txt,可以看到如下数据:
B3=A2._1+"_avg,"+string(A2.avg(_2))+”\r\n”
这句代码用来拼凑汇总字符串。A2._1表示当前组的第一列,对于第一组,这个值是“webcat_service”。表达式A2.avg(_2)表示对当前组的第二列求平均,对于第一组,这个值是2.25。函数string可以将浮点等类型的变量格式化为字符串。
对于第一组,B3的值如下:
B4=B1.write@a(B3)
这句代码可以将B3追加到结果文件中。函数export和write都可以写文件,但export用来写入结构化数据,而write用来写入字符串或字符串数组。选项@a表示追加,追加前会先写入回车换行。
上述脚本已经完成了全部的数据处理过程,打开result.txt可以看到最终计算结果:
相关推荐
位和总值02468位差总值0,2,4,6,8
计算森林专项调查各项面积占比汇总。采用最大余数法保证汇总满足100%。编辑修改密码私信
国民生产总值数据汇总
2022年31省市地区生产总值、第一产业生产总值、第二产业生产总值、第三产业生产 总值数据统计,人工手动整理 地区生产总值(地区GDP)是指本地区所有常住单位在一 定时期内生产活动的最终成果。地区生产总值等于各...
用于做数据分析的1995-2014国内生产总值的数据,总共3列数据,第一列是时间,第二列是X值,第三列是国内生产总值。
我国国内生产总值地多元线性回归分析报告.doc
GroundMCStatsDB:插件可将所有Minecraft统计信息存储在一个公共数据库中以汇总值
2018年各市地区生产总值.pdf
ch国内生产总值核算PPT课件.pptx
GDP 1978年-2011年国内生产总值
北京市最新历年地区生产总值汇总 .pdf
财政收入对国民生产总值的影响.doc
该资料整理了1952-2021各省地区生产总值-工业 地区生产总值-建筑业 地区生产总值-交通运输、仓储和邮政业 地区生产总值-批发和零售业 地区生产总值-住宿和餐饮业 地区生产总值-金融业 地区生产总值-房地产业 ...
海南省由于三沙市的人口很少所以查不到相关数据,分别是2019年的年鉴数据。(ps:标黄的代表用了流动人口,没颜色的是有直接的人均gdp数据)
2、指标:国内生产总值(亿元)、第一产业增加值(亿元)、第二产业增加值(亿元)、第三产业增加值(亿元)、人均国内生产总值(元)、国民总收入指数(上年=100)、国内生产总值指数(上年=100)、第一产业增加值指数(上年=100)...
三大产业对国内生产总值的影响分析.pdf
教案:第9章第1节国内生产总值及其核算方法.pdf
中国消费支出与国内生产总值的之间关系的计量分析报告.doc
1952-2019年中国国内生产总值.xls