SAS高效编程.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:11 大小:390KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

SAS高效编程.pdf

SAS高效编程.pdf

预览

免费试读已结束,剩余 1 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

PaperPO-088T.I.P.S.(TechniquesandInformationforProgramminginSAS®)KathyHarkins,CarolynMaass,MaryAnneRutkowskiMerckResearchLaboratories,UpperGwynedd,PAABSTRACT:ThispaperprovidesacollectionofbasicprogrammingtipsandtechniquesthatSAS®userscanimplementintheirdailyprogramming.Thiscollectionoftipsshouldbeusefulimmediatelyandwillimprovetheefficiencyoftheprograms.Thereareseveralexamplesorganizedbythefollowingcategories(Keywords:BASESTATFUNCTIONS):•Readandwritedataselectively•Concisecodingtechniques•Effectiveuseofsortingtechniques•Datamanipulation•Macros(tipsforthebeginner)READ&WRITEDATASELECTIVELY:Example1:UsetheKEEP=orDROP=ontheSETorMERGEstatementtokeepunneededvariablesoutoftheProgramDataVector(PDV)(thestorageareaforvariables,values,andattributes).Acceptable:MoreEfficient:datasmall;datasmall;setlarge;setlarge(keep=abc);keepabcprodlrgst;prod=a*b;prod=a*b;lrgst=max(a,b,c);lrgst=max(a,b,c);MoreSAS®statements;MoreSAS®statements;run;run;Example2:Produceallsubsetsyourequireforfurtherprocessinginonesteptominimizethe#oftimesalargedatasetisreadin.1Acceptable:MoreEfficient:dataone;dataonetwothree;setlarge;setlarge;ifa<10;ifa<10thenoutputone;run;elseif9<a<90thendatatwo;outputtwo;setlarge;elseifa>89thenif9<a<90;outputthree;run;(similarfordatathree;)run;Example3:ReadanexistingSAS®datasetandsubsetitbasedonvaluesofone(ormore)ofthevariables.Useawhereinsteadofanif….Acceptable:MoreEfficient:datanew;datanew;setold;setold(where=(age>65andgndr=Ifage>65andgndr=‘F’;‘F’));MoreSAS®statements..;MoreSAS®statements..;run;run;CONCISECODINGTECHNIQUES:Example1:Executeonlythenecessarystatements–movea“subsetting”ifbeforestatementsyouonlywanttoexecuteaftertheconditionismet.Acceptable:MoreEfficient:dataelders;dataelders;setdemog;setdemog;age=date2–date1;age=date2–date1;relday=date3–date2;ifage>65;tot_rslt=relday=date3–date2;sum(rslt1,rslt2,rslt3);tot_rslt=MoreSAS®stmnts.;sum(rslt1,rslt2,rslt3);ifage>65;MoreSAS®stmnts