集算器文本处理之去除重复行.pdf

集算器文本处理之去除重复行.pdf

ID:52768172

大小:402.53 KB

页数:3页

时间:2020-03-30

集算器文本处理之去除重复行.pdf_第1页
集算器文本处理之去除重复行.pdf_第2页
集算器文本处理之去除重复行.pdf_第3页
资源描述:

《集算器文本处理之去除重复行.pdf》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、集算器文本处理之去除重复行在进行文本文件的处理时,有时需要从已经分组的数据中去除重复的行,当文件较大无法放入内存时会更为麻烦。集算器的分组运算支持丰富的选项,同时支持文件游标读取整组数据,易于实现此类算法,下面通过例子来看一下具体作法。文件EPRom.log有4列,列之间以tab分隔,数据已按第二列分组。现在要去除数据中重复的行(只保留各组的第一行)。部分源数据如下:540151541051542011543111544121545021546131547131548041549041…集算器代码:A=file("E:\EPRom.log")

2、.import()1=A1.group@1o(_2)2A1=file("E:\EPRom.log").import()这句代码用来将文件读入内存,默认分隔符是tab,默认列名依次是_1,_2,_3……如果文件来自csv文件,则应当指定分隔符,代码形如:import(;”,”)。如果文件的第一行包含列名,则可用选项t读入列名,代码形如import@t()。A1的计算结果如下:A2=A1.group@1o(_2)这句代码用来取出A1中各组数据的第1条,分组字段是_2,即第2个字段。A2就是本案例的最终计算结果,如下:函数group默认情况下可对数

3、据重新分组,比如代码A1.group(_2)会将A1按照第2个字段分为两组,如下:使用选项@o时,函数group不重新分组,比如代码A1.group@o(_2)的结果如下:使用选项@1时,函数group会取出各组的第1条,选项@1和@o连用,即可获得本案例的计算目标。当文件太大无法放入内存时,可以使用集算器游标来解决问题,代码如下:AB=file("E:\EPRom.log").cursor()=file("e:\result.txt")1forA1;_2>B1.export@a([A2(1)])2A1=file("E:\EPRom.lo

4、g").cursor()这句代码以游标的方式打开日志文件。函数cursor表示根据文件对象返回游标对象,默认分隔符是tab,默认列名是_1,_2…_n。值得注意的是,这句代码只是建立游标对象,并没有读入数据,实际的读入动作会在遇到语句for或函数fetch时触发。B1=file("e:\result.txt")这句代码新建文件对象,将来可写入计算结果。A2:forA1;_2这句代码对游标A1进行循环读数,每次读入第2列(列名为_2)相同的一组数据,此时数据才会真正读入内存。注意这里的for语句。集算器有forcs,n这样的写法,这表示每次读入

5、游标cs中的n条记录。而forcs;x表示每次读入游标cs中的一组记录,每组记录的x字段相同,数据需要按照x事先分组。语句forcs;x中的x也可以是表达式,即:每次读入多条数据,直到表达式x发生变化,比如:forA1;floor(_1/5)。这句代码会对字段_1除5后取整,如果未发生变化,集算器就会把这些记录归为一组。比如第1条到第5条就是同组数据。B2=file("e:\result.txt").export@a([A2(1)])这是for语句A2的循环体,用来对每组数据进行同样的数据处理,具体算法是:取出当前组中的第1条,追加到文件re

6、sult.txt中。代码中的A2代表循环变量,可以表示当前组对应的所有记录。A2(1)表示A2中的第1条记录。函数export用来将结构化数据写入文件,@a表示追加写。由于A2(1)是单条记录,不是数组,因此要用运算符[]来转换类型。打开result.txt,可以看到本案例的最终结果:540151541051543111545021546131548041集算器中for语句的作用范围用缩进就可以表示,而无需用括号或begin/end等标记。比如下面的代码中,B2-B5就是A2的作用范围。AB=file("E:\webdata.log").cu

7、rsor(;",")=file("e:\result.txt")1forA1;_1=B1.export@a(A2;",")2=A2._1+"_avg,"+string(A2.(_2).avg())+"rr"3=B2.write@ab(B4)4=output(now())5

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。