`
datamachine
  • 浏览: 163477 次
社区版块
存档分类
最新评论

文本文件的分组间插入汇总值

阅读更多

         在已经分组的数据间插入汇总值,通常的做法是依次读入本组数据,直到数据发生变化,然后将本组数据和汇总值追加到新文件中,再读入下一组数据。硬编码的过程有些麻烦,集算器支持分组游标,可以自动读入整组数据。下面通过例子来看一下具体作法。

 

         日志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追加到结果文件中。函数exportwrite都可以写文件,但export用来写入结构化数据,而write用来写入字符串或字符串数组。选项@a表示追加,追加前会先写入回车换行。

         上述脚本已经完成了全部的数据处理过程,打开result.txt可以看到最终计算结果:



 

 

  • 大小: 48 KB
  • 大小: 58.6 KB
  • 大小: 26.3 KB
  • 大小: 14.8 KB
  • 大小: 12.3 KB
  • 大小: 3.8 KB
  • 大小: 59.3 KB
0
5
分享到:
评论

相关推荐

    iReport分组报表

    3. 分组汇总:每个分组结束时,iReport会自动计算该分组内的汇总值。你可以在“Summary Band”中定义这些汇总字段。 二、Print Repeated Values属性 Print Repeated Values属性是iReport中的一个重要特性,它影响...

    gridcontrol实现分组,并实现分组总计,平均统计

    4. 显示结果:更新GridControl后,会自动生成分组行和对应的汇总值,用户可以清晰地看到每个班级的总分和平均分。 在实际项目中,可能还需要处理一些细节,如格式化数字显示、异常处理等。此外,为了提高用户体验,...

    位和位差总值

    标题和描述中的“位和位差总值”概念在给定的部分内容中得到了具体的应用,主要涉及了数字组合游戏中的策略分析。这种游戏通常与彩票、数字猜谜或赌博类活动有关,其中“位和”指的是一个数字组合中所有数字相加的...

    DataGrid分组汇总

    转换器接收分组后的数据作为输入,计算出相应的汇总值,然后返回结果供UI显示。 5. 应用转换器:在DataGrid的行细节模板中,使用`Binding`并指定转换器,如`, Converter={StaticResource sumConverter}}"`。这里,...

    2022年31省市地区生产总值、第一产业生产总值、第二产业生产总值、第三产业生产总值

    2022年31省市地区生产总值、第一产业生产总值、第二产业生产总值、第三产业生产 总值数据统计,人工手动整理 地区生产总值(地区GDP)是指本地区所有常住单位在一 定时期内生产活动的最终成果。地区生产总值等于各...

    sql server report server分组示例

    分组不仅可以提供更清晰的数据视图,还可以用于计算汇总值,如总计、平均值和百分比等。 描述中提到的“c#”表明这是一个使用C#编程语言编写的示例程序,可能用于创建与SQL Server Report Server交互的客户端应用...

    1978-2023年国内生产总值、分产业行业增加值等指标数据.xlsx

    2、指标:国内生产总值(亿元)、第一产业增加值(亿元)、第二产业增加值(亿元)、第三产业增加值(亿元)、人均国内生产总值(元)、国民总收入指数(上年=100)、国内生产总值指数(上年=100)、第一产业增加值指数(上年=100)...

    我国国内生产总值地多元线性回归分析报告.doc

    本文是关于我国国内生产总值的多元线性回归分析报告,旨在探讨影响我国国内生产总值的因素,并建立多元线性回归模型,分析我国国内生产总值与城乡居民存款年底、财政收入、居民消费价格指数、货物进出口总额之间的...

    SQL Server分组排序取数据的实现

    这样做的目的是为了计算每个组的汇总值或执行其他聚合函数(如COUNT(), SUM(), AVG()等)。 接着是排序。`ORDER BY`语句用于指定查询结果的排列顺序,通常与`GROUP BY`一起使用。在示例中,`ORDER BY maturity ASC`...

    ArcgisPro3.0计算面积占比保证汇总值为1(最大余数法)

    计算森林专项调查各项面积占比汇总。采用最大余数法保证汇总满足100%。编辑修改密码私信

    国民生产总值数据汇总

    国民生产总值数据汇总

    SQL按月分组.txt

    根据提供的文件信息,本文将详细解释如何在SQL中实现按月份进行数据分组,并通过一个具体实例来加深理解。此方法对于需要分析时间序列数据、尤其是销售数据分析的应用场景非常有用。 ### SQL按月分组的核心概念 ##...

    1995-2014国内生产总值

    用于做数据分析的1995-2014国内生产总值的数据,总共3列数据,第一列是时间,第二列是X值,第三列是国内生产总值。

    MySQL- 分组查询讲解

    这些函数用于计算每个分组的汇总值。 - **COUNT()**:计算指定列的非NULL值的数量。 - **SUM()**:计算指定列的值之和。 - **AVG()**:计算指定列的平均值。 - **MAX()**:找出指定列的最大值。 - **MIN()**:找出...

    山东省137个区县GDP地区生产总值数据2000-2023.xls

    区县GDP地区生产总值第一二三产业增加值市县区2000-2023数据 (该数据基本上涵盖了本省所有的区、县、县级市) 数据范围:各个省份的区县GDP地区生产总值、第一产业增加值、、第二产业增加值、第三产业增加值 ...

    国民经济核算 国民总收入+国内生产总值+三产增加值+人均国内生产总值(1978年-2022年) 经济实证分析

    国民总收入+国内生产总值+三产增加值+人均国内生产总值(1978年—2022年) 具体包含国民总收入(亿元)+国内生产总值(亿元)+第一产业增加值(亿元)+第二产业增加值(亿元)+第三产业增加值(亿元)+人均国内生产总值(元) ...

    2018年各市地区生产总值.pdf

    2018年各市地区生产总值.pdf

    福建省84个区县GDP地区生产总值数据2000-2023.xls

    区县GDP地区生产总值第一二三产业增加值市县区2000-2023数据 (该数据基本上涵盖了本省所有的区、县、县级市) 数据范围:各个省份的区县GDP地区生产总值、第一产业增加值、、第二产业增加值、第三产业增加值 ...

    研究深圳地方财政收入与国内生产总值的相关关系(计量经济学)

    为了研究深圳市地方预算内财政收入与国内生产总值的关系,分析什么是影响国内生产总值明显差异的最主要的因素,可以建立相应的计量经济模型去研究。

    2000-2020分省份-股票市价总值-WIND数据库

    标题中的“2000-2020分省份-股票市价总值-WIND数据库”揭示了这个数据集的核心内容。这是一份涵盖了2000年至2020年间,中国各省份股票市场市值的数据,来源于知名的金融数据供应商WIND数据库。WIND数据库在金融界...

Global site tag (gtag.js) - Google Analytics