集算器和R语言处理外存文本文件的对比.pdf

集算器和R语言处理外存文本文件的对比.pdf

ID:52767897

大小:469.50 KB

页数:6页

时间:2020-03-30

集算器和R语言处理外存文本文件的对比.pdf_第1页
集算器和R语言处理外存文本文件的对比.pdf_第2页
集算器和R语言处理外存文本文件的对比.pdf_第3页
集算器和R语言处理外存文本文件的对比.pdf_第4页
集算器和R语言处理外存文本文件的对比.pdf_第5页
资源描述:

《集算器和R语言处理外存文本文件的对比.pdf》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、集算器和R语言处理外存文本文件的对比作为数据计算语言,集算器和R语言都提供了丰富的功能用来处理外存中的文本文件。两者在基本用法上有很多相似之处,但区别也很明显,比如处理列宽固定的文件、读写指定的列、处理大文本文件,计算性能等方面。下面详细对比两者的异同。1基本功能对比描述:sales.txt共有六列,列之间以制表符(t)分割,行之间以换行符()分割,其中第一行为列名。请将该文件读入内存,再原样写入新的文件。该文件的前几行如下:ORDERIDCLIENTSELLERIDAMOUNTORDERDATE1WVFVip54402009/2/32UFS

2、Com131863.42009/7/53SWFR218132009/7/84JFSPep27670.82009/7/85DSG1537302009/7/96JFE101444.82009/7/107OLF16625.22009/7/11集算器:data=file("e:\sales.txt").import@t()file("e:\salesResult.txt").export@t(data)R语言:data<-read.table("e:\sales.txt",sep="t",header=TRUE)write.table(data,f

3、ile="e:\salesResult.txt",sep="t",quote=FALSE,row.names=FALSE)对比:1.两者都可以方便地实现本功能,其中集算器需要用函数选项“@t”表示第一行为列名,而R语言使用“header=TURE”。2.换行符是最常见的行分割符,集算器和R语言默认支持换行符。制表符是最常见的列分割符,集算器默认支持制表符,如需指定其他分割符(比如逗号)则应当写作“import@t(;”,”)”。R语言支持的默认列分隔符是“空格和制表符”,这会把含有空格的Client列错误地分为两列,因此需要用sep=”t”来

4、明确分割符只能是制表符。另外,代码中的“quote=FALSE,row.names=FALSE”表示和源文件一样,不用给元素加引号,也不用输出行号。3.文件被读到内存后一般都以结构化二维数据对象来存储,这在集算器中被称为序表(TSeq),在R语言中被称为数据框(data.frame)。序表和数据框都支持丰富的计算功能,比如按Client和SellerId分组,分组后对Amount求和并求最大值。集算器实现该算法的代码是:data.groups(Client,SellerId;sum(Amount),max(OrderID))数据框不直接支持同时使用

5、多种汇总方法,因此求和、求最大值要分为两步,最后再通过cbind拼合结果,如下:result1<-aggregate(data[,4],data[c(2,3)],sum)result2<-aggregate(data[,1],data[c(2,3)],max)result<-cbind(result1,result2[,3])4.除内存中的结构化二维数据对象外,集算器还能用游标对象来访问文件,R则能用矩阵对象来访问文件。结论:对于基本的文件读写,集算器和序表都提供了足够丰富的函数功能,可以很好的满足需求。2读取列宽固定的文件有些文件没有分隔符来区分

6、不同的列,而是用固定的宽度来区分。比如,请将下面含有三列数据的static.txt文件读入内存,并将列名分别改为:col1、col2、col3。其中,col1宽度为1,col2宽度为4,col3宽度为3。A1.501.2A1.551.3B1.601.4B1.651.5C1.701.6C1.751.7集算器:data=file("e:\static.txt").import()data.new(mid(_1,1,1):col1,mid(_1,2,4):col2,mid(_1,6,8):col3)R语言:data<-read.fwf("e:\sal

7、es.txt",widths=c(1,4,3),col.names=c("col1","col2","col3"))对比:R语言可以直接实现本功能。集算器只能间接实现,即将文件读入内存后再拆分成多个列。请注意:代码mid(_1,1,1)中的”_1”是默认列名,如果读入的文件有多个列,则默认列名依次是:_1、_2、_3等结论:R语言能够直接读取列宽固定的文件,比集算器更方便。3读写指定的列有时出于节省内存提高性能等目的,我们需要读取部分的列数据。本例需要将sales.txt中的ORDERID、CLIENT、AMOUNT这三列读入内存,并将ORDERI

8、D、AMOUNT写入新的文件。集算器:data=file("e:\sales.txt").import@t(ORDERI

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

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

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