- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SAS编程数据挖掘学习与帮助文档-3.
《SAS编程与数据挖掘商业案例》学习笔记之九(2013-08-07 07:41:14) 转载▼标签: sasinfile语句数据挖掘数据分析sas编程分类: SAS编程 继续之前的读书笔记,废话少说,直奔主题。本文重点在infile语句。十一:infile语句Dsd 规定一个数据集可以包含分隔符,但是要用引号括起来,两个连续分隔符之间的数作为缺失值处理, 默认分隔符为逗号Firstobs= 规定从该记录行开始读入Obs= 规定要读入的记录数Length= virable 把当前行的数据长度赋值给临时变量variableMissover 阻止input语句从下一数据行读入数据,为赋值的变量设置为缺失eg:filename file f:\data_model\book_data\chapt3\utf.txt;data unicode;infile file encoding=utf-8;input name $ weight;run;导入指定编码格式的文件eg:data num;infile datalines dsd dlm=;input x y z;datalines;2 34 5 67 9;run;对于有缺失值时,利用dsd 和dlm一起可以解决eg:data weather;infile datalines missover;input temp1-temp5;datalines;97.9 98.1 98.398.6 99.2 99.1 98.5 97.596.2 97.3 98.3 97.6 96.5;run;第一行后面两个数据缺失,此时用missover强制数据指针必须读完每一行对应的所有输入变量的值《SAS编程与数据挖掘商业案例》学习笔记之十(2013-08-07 12:57:22) 转载▼标签: sas数据分析retain语句keep语句array语句分类: SAS编程 继续之前的读书笔记,本次讲解sas主要的变量操作,包括基本赋值语句、累加语句、keep语句、retain语句、array语句、rename语句、length语句。1.基本赋值语句z=x y;z=sum(x,y); sum函数的好处是可以克服缺失值的影响;2.如果表达式中既有数值型变量又有字符型变量的话,则会将字符型变量转化为数值型变量3.系统在编译阶段,对于赋值语句变量,如果是字符型变量则长度为1,如果是数值型变量则长度为8,接下来,系统将执行赋值语句,这时变量长度将由第一次读入的表达式的运算结果决定。一旦第一次读入确定长度之后,下一次pdv无论读入多长的数据,都不会改变变量的长度。除非提前用length语句限定变量的长度。4.累加语句x 1,x (-1)都是累加语句,其中x必须是数值型变量,在编译阶段,pdv自动设置累加变量值为0,它的值从当前执行后一直保留在pdv中,直到下一次执行为止。在项目实践中,一般用retain语句替代累加语句,因为retain语句可以初始化累加变量为一个非零值,而累积语句初始值只能为0.5.keep语句(keep语句不是可执行语句)Data a3;set sashelp.class(keep=name weight);x=1;keep name x;Run;Data a4(keep=name x);set sashelp.class(keep=name weight);x=1;Run;以上两个程序输出结果一样,但是对于读入数据集时,keep=的形式性能要远高于keep的形式,因为keep=的形式是仅限后面的变量进入pdv,对于拥有几百个变量的数据集而言,keep=效率要高;不过对于数据输出方面,keep=与keep性能没有区别;上面两个语句性能完全一样。6.retain语句(不是一个可执行语句)pdv运行规律:data语句与run语句构成了一个循环语句,一般情况下每读一遍data步所有语句时,pdv都会清空所有变量值,并设置为缺失值。然后根据执行语句,再次对变量进行赋值。当data步使用retain语句时,pdv则不会清空retain语句对应变量,而是一直保留直到下次该变量再次执行。retain语句在data步中有着广泛的应用,对于数据集的操作可以到单元格,而一般函数只能操作到列,实际应用中retain会使程序更加灵活化。可以控制一个变量的值不变,除非有外部的条件的变化而变化。retain语句主要实现以下需求:汇总数据,累加变量,纵向比较变量,创建flag标识变量,处理缺失值,迭代累加字符变量值。Eg:关于汇总数据的一个例子(按照每个id,汇总cns的值,汇总id的记录数,如果txn_cde变量取101和201两个值,则累加计算一次,计算txn_dte的最小值,)libname chapt4 f:\data_mode
文档评论(0)