欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    SAS调试技巧.docx

    • 资源ID:1473877       资源大小:103.23KB        全文页数:10页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    SAS调试技巧.docx

    SAS调试技巧对于每一个编程者来说,都会遇到BUG同应.一个有羟验的编程者那么能尽信防止错误发生,同时,在遇到问Sfi,能弊有效利用软件的相关调试功能,刚好发觉、定位和解决问%对于SAS来说,特地讲调试的书情很少,通过这章内容,希里使读者能携驾驭根本的SAS的调试技巧.SAS错误类型概述SAS佛课类型包括:谓法惜、词义错、运行情、数据信和宏相关情误.SAS在编译和运行过程中都执行错误检衣,在每个语句执行之前编译各步时候SAS可以发觉语法错、词义错和局部宏错误,在程序执行过程中可以发觉其他错误.错误类里错误发生地点错误检杳环节语法程序语句不符合SAS诏吉标准编译环节词义程序语句的元素恪式正确.但是用法无效编译环节运行运行时候出借运行过程数据数据值不合法运行过程宏相关没仃正确的运用宏编译和运行过程语法南语法错俣JSyntaxerrors)是指程序语句不符合SAS语言标准,可能是关键字恃误.双引号不匹配,缺少分号等.SAS在发觉谱法错俣时候,首先它会试图运用一种“错误订正”方法去订正这个错误假如能订正,SAS会根据订正后的程序执行,假如不能订正,它就会Ju错,停顿运行并在1.oG窗口中显示。帝胤SAS订正后,在1.oG涛U中会显示警告(WARNING:,并将订正后结果显示.须要特殊留意的,SAS订正不肯定是当时想要的结果,读若在运行SAS程序的时帔肯定要特别当心,即使程序的正'常运行,肯定要看1.OG窗口中行无警告信息,行的话,要看警告信息内容进展相应的推断。例子:语法错误,SAS自动纠错datea;setsasser.admit;在SAS的1.OC窗UUr以行到25datet;14WARNING14-169:假定符号DATA错拼为date.26 setsasser.admit;27 run;NOTE:从数ft<集SASUSER.ADMIT.1RT21个观测NOTE:数据集WORK.T有21个观测,和9个变盘.例子:语法错误,缺少分号.SAS报错datatsetsasser.admit;run;在SAS的1.0<3窗n可以看到28 datat29 setsasser.admit;56ERROR56-185:运用DATASTMTCHK=COREKEYWoRDS选项时,在DATA语句中不允许运用SET.请在data语句中在看是否缺失分号,或运用Drtastmtchk-Nohe.30 run;NOTE:由于用错,SAS系统停顿处理该步.词义词义错误是指程序语句中每个元素的格式是正确的,但用法无效”词义锚误包括变量名称拼法错误、数组引川错误、数据集引用忸误等.例如:引用的逻轿像不存在datatest;setmylib.student;run;在SAS的1.OG窗口可以行到4 datatest;5 setmylib.student;ERROR:没有安排爱辑库引用名MY1.IB.6 run;运行错的运行错误是指SAS在执行程序时候遇到数值错误,大局部运行错误SAS会在1.oG窗口显示警告信息,但是允许程序接蓿执行,1.oG窗口慑都会注解出行号和列号,以及相应的秘误信息,运行tft误一般包括以下状况: 函数的参数值无效: 非法的数学运算(例如,O为除数); 对于运用BY组分析处理时候,没有正确的排序: 引用超出数组边界的元素: INPUT函数中数据类型不匹配: 在翻开文件和关闭文件时候出现错误; 资源缺乏何题(例如屈盘空间缺乏,内存缺乏)例如:引用的逻辑片不存在datatest;inputItem$1-14TotalCost15-20UnitsOnHand21-23;Unitcost=TotaicostZUnitsOnHand;datalines;Hammers44055Nyloncord3S0Ceilingfans115530/run;在SAS的1.OG窗口19datatest:20inputItemS1-14TotalCost15-2021UnicsOiHand21-23;22 UnilCOsi=ToiaICosVUnitsnHand;23 daialines:NOTE:检测到0为除数.位徨:行22列22,RU1.E:I-2-34+5+6-+7+X25Nylonconi350Itcm=NyIoncordTOudCOSt=35UnitsOnHand=OUnitCost=.ERR()R_=IN_=2NOTE:在以下位置无法执行算术运算.运算结果已设为缺失的,每个位置的指定方式:(次数)(行:列)。1 .位置:22:22.NOTE:数据集WORK.DATA2有3个观测和4个变量.27;28rn;数据错误足指数据不适合当时定义的数据格式就会出现数据报错,例如定义了变出为数值型,但是实际运用字符型,这时候就会报错.例子:数据类型错说dataage;inputNameSNumber;datalines;小张35小李xx小王22procprintdata-age;run;在SAS的1.OG窗口输出Idataage;2 inputName$Number;3 da(alies;NOTE:在第5行、第8-9列中有对“Number”无效的数据.J.一5小李xxName=小率Number=._ERROR_=I_N_=2NOIE:数据集WORK.AGE有3个观测和2个变盘。NOTE:"DATA语句”所用时间(总处埋时间):实际时间CPU时间0.64秒0.01杪7 :89 ProCprintdata=agc;10 run;NOTE:从数据集WORK.AGE.读取了3个观测NOTE:"PROCEDUREPRINT*所用时间总处理时间):SAS的IMim过程在OUlPUl说输出的结果TheSASSystemObsNamcNumberI小张352小李3小王22Ur以看到无效的“xx”被置成了空侦。时于无效值假如想设置个然认值,可以运用INVAuDDATA选项。般在发生语法和词义错误时候,SAS系统1.OG窗口会在它检杳出错误的位置上加下划线,并标示数字.通过SAS的1.OG窗口,根本能滋发觉这些问题,但是对于数据中设辑错误.那么须要用到下一章的逻辑词试功能.12.1.2DATA步中逻辑错误调试技巧逻辑错旗是指程序运行结果不是最初设计的结果,和语法错误错误不同,逻辑错误不会让程序停顿运行,且不会在SAS的1.oG窗口报错,相时于语法错误来说,遗辑错误更难发觉,一般来说,可以用以下方法帮助调试送辑带。对于一个长的程序来说,将其中局部程序拷贝到新的程序窗口运行.视察运行结果.在须要观测的地方运用PUT.可以I.OG窗【I检查观刈的伯运用SAS的DATA步的调试工具DEBUG本节主要讲调试工具DEBUG的运用技巧。例子:统计一个每个地区销僧收入占比.datasale;inputzone$amount;datalines;北京2000上海2000山东1500浙江1000procunivariatedata-sale;Varamount;outputout=preddatasum=su0amont;run;procprint;run;通过SiVariate过程步计克总的Wm收入,可以得到总的精件收入为6500元。datasalerec;setsale;if_N_-1thensumamount-6500;percamount/sumamount;run;procprint;run;可以看到OUtPUl也口输出Obszoneomcntsumomountprc1北京2上海20003山东15004浙江100O明显不是我们也要的结果,此时可以运用DEBUG过程进展逐步调试,发觉其中同明,DEBUG过程的调用方法:在DATA步后面增加DEBUG选项,datasaleprecdebug;提交后将会出现两个窗口上面的窗口是DEBUG的1.OG窗口,在“>"可以输入DEBUG吩咐下面的曲U是DEBUG的源.这里显示程序代眄,显示方式和在1.oG中显示一样.可以看到光标停在加亮的就行.SAS程序此时柯停在这里.在谢试刚开场只动的时候,SAS首先完成DATA步程序的编译工作,停在加亮在DATA步后面第一行,打算后面循环运行。如何查看变盘值:在进展程序逻辑两试时候,通常是通过查看运行中变依伯,通过变僦值结果和预期的逻辑结果之间比对,发觉程序何胭,在SAS的DEBUG工具中,检杳变显值方法是运用EXAMINE的方式。利用在程序刚开场时候.希全部变盘值,可以在DEBUG工具1.OG窗1.I中运用.EXAMINEA1.1.回车后.在1.oG窗口中显示如下:DEBUGGER1.OC可以看到,全部变量都列出,但是由于是第一步,DATA步还未Sale数据集读入任何观测(ft.花DEBUG工具1.oG窗口运用STEP吩咐,或者运用菜单中“运行"F的"步进”孑菜单.和JAVA等循程请吉的谣试I:具一下.SAS会运行下一步,在SOURC窗【I光标已经移动一行.此时SAS从SA1.E数据集中读入第一行数据.再次运行EXAMlNE_A1.1._.在1.oG商口可以看到佶息.DEBD(XER1.OC11IB5cl»ercs.DRfW1.三8后40到1>STEP!fi三SH40M15号我"ount三MOOm*rd,.>ere.OW1.三K»I此时,ZONE值已经变为“北京”.am。Unt值已经变为“2000”,而由于下面的程序行还未执行.Sumamout和PERC的(ft还为空.有时候程序中变显特别多.假如想要看特定变尻的f11可以在EXAMINE后面写特定变址的名称.例如看amount的值.可以运用EXAMINEamount-断点设三1.在调试过程中,可能桁望程序执行到特定行.来视察运行的结果,这时候须要设置断点,当SAS程序执行到断点时帙自动何停.SAS的D£BUGI:只的断点设置特别简洁.干脆运用BREAK加上须要设置行数即可,例如上述程序在PerCram。UntVsumamount;这行设置断点,在SOUCRE窗口我们可以看到这是41行,那就可以运用BREAK41。DEBDCCER1.OCftaSP«5«15M<r4f?M0SUMMUrd三.wkMCWTurrt-2100WTel(M41t5)在1.oG窗口中,显示断点已经设置,在SOURCE窗1.l中,第41行前面加了“!",表示这一行设E1.召断点.假如要删除断点,可以运用DE1.ETEBREAK吩咐.断点可以同时设置多个.设过断点后,运用Go吩咐即可运行到最近的断点,JltWWniEXAMINE可以看到SUMAMOUNT己经赋值,下-循环到断点的时候,可以发觉此时SUmamount侦为空,运用STEP吩咐运行下行,可以发觉PERC也为空。这不是我们期里的结果,可以发觉原来是SUmamoUnt没行赋值,须要运用RETAIN关键字,保持smaj11ont的值不变。订正后程序datasaleprec;setsale;retainsmdmount;if_N_=1thensumamount=6500;PerC三amount/sumamount;run;procprint;run;在。UtPUE窗口可以看到ObszoneOmCQntsumomountprcIa如筑要退出调试帙式运用QUrr吩咐即可.

    注意事项

    本文(SAS调试技巧.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开