




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
例2:选择数据集sashelp.class中的观测生成新数据集work.class,要求其中的观测满足条件:年龄大于14岁的男生。dataclass;setsashelp.class;ifsex=Mandage14;run;,2)WHERE语句一般形式:WHERE条件表达式;功能:对读入PDV中的观测进行选择,只有使表达式成立的观测才被保留。说明:WHERE操作符:只能在WHERE语句中使用的比较运算符。变量BETWEEN值1AND值2变量的值包含在值1和值2构成的的范围内。变量CONTAINS字符串变量中包含字符串例如例2用WHERE语句代替IF语句可写为:wheresex=Mandage14;,3)WHERE选项一般形式:(WHERE=(条件表达式)功能:对观测进行选择,只有使表达式成立的观测才被写入目的数据集。说明:1)可用于SET语句或DATA语句中。2)一个数据步中可以在SET或DATA语句中同时出现WHERE选项,同时还可以有WHERE语句。例2可用以下数据步实现:dataclass(where=(sex=M);setsashelp.class(where=(age14);run;,2.2源数据集选项在源数据集或源数据文件读入PDV时,可通过设置此选项控制读入的起始行和终止行。一般格式如下:(FIRSTOBS=起始行号OBS=终止行号)功能:指定读取源数据集或源文件的起始行和终止行。说明:1)应用于SET或INFILE语句中;2)系统在缺省情况下读取所有观测或数据行。例3:读取sashelp.class中的第4条到第10条观测,生成新的数据集work.class。dataclass;setsashelp.class(firstobs=4obs=10);run;,3.有关变量的数据加工3.1选择变量方法:数据步中设置KEEP=和DROP=选项,或加入KEEP和DROP语句,1)KEEP和DROP语句一般形式:KEEP变量1变量2;DROP变量1变量2;功能:KEEP语句:列出的是在新数据集中要保留的变量,DROP语句:列出的是在新数据集中要删除的变量。,例4:如下图所示,在SAS系统中有数据集sashelp.class,其中包含了5个变量:Name、Sex、Age、Height、Weight。如果我们希望构造一个新数据集work.class,其中仅包含变量Name、Age、Height。可通过以下数据步实现:,dataclass;setsashelp.class;dropsexweight;run;也可将上例中的DROP语句替换为如下KEEP语句:keepnameageheight;则在VIEWTABLE窗口中打开work.class可看到如下结果:,2)数据集选项KEEP和DROP一般形式:(KEEP=变量1变量2)(DROP=变量1变量2)功能:KEEP选项:列出的是在新数据集中要保留的变量,DROP选项:列出的是在新数据集中要删除的变量。说明:(1)可用于SET语句或DATA语句中。(2)一个数据步中可以在SET或DATA语句中同时出现KEEP或DROP选项,同时还可以有KEEP或DROP语句。但此时需要注意避免变量的冲突。,对于例4也可以用以下数据步实现:dataclass(keep=nameageheight);setsashelp.class;run;DATA语句也可写为:dataclass(drop=sexweight);或:dataclass;setsashelp.class(keep=nameageheight);run;SET语句也可写为:setsashelp.class(drop=sexweight);,3.2变量的创建与赋值在数据加工过程中不仅可以舍弃不需要的变量,还可以创建新的变量并对其进行赋值。1)赋值语句一般形式:变量名=表达式;功能:如果等号左端的变量已经存在于数据集中,则修改改变量的值;如果数据集中不存在等号左端的变量,则创建新变量并赋值。说明:表达式可以是任何有效的表示形式,其中可以包括变量、常数、运算符、函数、子表达式。,例5:数据集sashelp.class中变量Height和Weight是以英制单位表示的,我们想新建一个数据集work.class,其中变量Height和Weight以公制单位表示,并且增加一个新变量Ratio,用于保存每个人的体重和身高的比例(Weight/Height)。dataclass;setsashelp.class;Height=Height*0.0254;Weight=Weight*0.454;Ratio=Weight/Height;run;,在VIEWTABLE窗口中可观察到新数据集work.class的内容如下:,例6:在读取外部文件创建数据集时,也可以创建新变量。假设一个保存航班信息的文本文件dfw.dat,其中每个航班信息对应一行,其中有如下字段:,我们通过如下数据步新建数据集work.flight,并添加一个新变量Total用于保存每个航班上的所有人数。dataflight;infiled:dstflight.dat;inputFlightID$1-3Datedate7.Dest$11-13Boarded14-16Trans17-19Aircrew20-22;Total=Boarded+Trans+Aircrew;run;,2)变量属性的设置(1)设置变量的类型和长度一般形式:LENGTH变量名1$长度变量名2$长度;功能:预先为指定变量设置类型和长度。说明:该语句必须出现在其他语句引用这一变量之前(包括赋值语句)。变量的类型通过可选项$设置,若给出,表示变量是字符型的;若不给出,表示变量是数值型的。,(2)设置变量的输出格式一般形式:FORMAT变量名1输出格式变量名2输出格式;功能:给指定的变量设置输出格式。(3)设置变量的输入格式一般形式:INFORMAT变量名1输入格式变量名2输入格式;功能:给指定的变量设置输入格式。,(4)设置变量的标签一般形式:LABEL变量名1=标签变量名2=标签;功能:给指定的变量设置标签(即注释)。说明:标签以用一对引号括起来的字符串的形式给出。,1.实现:过程步SORT2.一般形式:3.功能:根据指定排序变量对数据集中的观测进行排序。,PROCSORTDATA=数据集名OUT=输出数据集名;BYDESCENDING变量名1DESCENDING变量名2;RUN;,7数据集的排序,4.说明:1)数据集中的观测的缺省顺序:观测输入数据集的顺序。2)DATA=数据集名:指定待排序的数据集。3)OUT=输出数据集名:指定存放排序结果的数据集,若不给出此选项,系统缺省将排序结果存放在原数据集名下。4)BY语句指定排序变量,可在此设置多个排序变量,按其出现的前后顺序称为第一排序变量、第二排序变量、。系统在进行排序时,首先将数据集中的观测按照第一排序变量的值进行排序,对于那些在第一排序变量的值相等的观测,按照第二排序变量的值进行排序,以此类推,直到处理完BY语句中的所有排序变量。5)系统默认按照排序变量的值进行升序排序(即由小到大排序),如果在变量名前给出可选项DESCENDING,则按照排序变量的值进行降序排序(即由大到小排序)。,例1:对数据集sashelp.class中的观测进行排序,首先按照变量Age的值降序排列,Age相同的观测按照Height升序排列。排序结果保存在work.sortedclass中。procsortdata=sashelp.classout=sortedclass;bydescendingageheight;run;,7数据集的合并与拼接,1.拼接数据集拼接两个数据集的操作使得结果数据集中可以包含两个数据集的所有观测。,一般格式:DATA新数据集名;SET源数据集名1源数据集名2;RUN;功能:通过数据步中SET语句完成数据集的拼接,使结果数据集中包含SET语句中列出的数据集的所有观测。,说明:1)如果SET语句中两个源数据集包含不同的变量,则结果数据集中包含所有出现过的变量。对于没有此变量的数据集中的观测,系统会自动加入缺省值。2)可以在DATA或SET语句中通过选项对变量进行重命名,选项格式如下:(RENAME=(原变量名=新变量名)此选项紧跟在某一源数据集之后;如果参加拼接的两数据集中存在变量名字不同,但其它属性相同,可在拼接过程中对其中一个数据其中的变量改名。,例1:新建两数据集A和B并拼接为一个新数据集Combine。dataA;inputNumVar$A$;cards;1A1X12A2X25A3X3;run;dataB;inputNumVar$B$;cards;3B1Y14B2Y26B3Y3;run;dataCombine;setab;run;,例2:拼接如下两个数据集FA1和FA2,数据步和结果如下:libnamedstd:dst;datanewfa;setdst.fa1dst.fa2;run;,例3:有以下两个数据集dst.fa1和dst.fa3,拼接两数据集(同时对dst.fa3中的变量jcode重命名)。datanewfa;setdst.fa1dst.fa3(rename=(jcode=jobcode);run;,2.合并数据集将两个数据集进行合并,则结果数据集中可以包含两个数据集中的所有变量。前提:两数据集有相同的变量即变量的名字、类型和长度完全相同,我们将此类变量称为合并变量。结果数据集中包含两个数据集中的所有变量(但合并变量只出现一个,系统自动删去重复的一个)。,合并过程如下:系统从头开始依次扫描数据集A中的每一条观测,对于数据集A中正在扫描的当前观测,系统从头开始会依次扫描数据集B中的每一条观测,并且判断分别来自于两数据集的当前观测的合并变量的值是否相等。如果相等,则将两条观测合并成一条观测,保存到结果数据集C中;如果不相等,则扫描数据集B中的下一条观测。当扫描完数据集B中的最后一条观测,则扫描数据集A中的下一条观测,而对于数据集B从头开始下一趟扫描。反复执行以上操作,直到数据集A中的所有观测都处理完毕。,一般形式:DATA新数据集名;MERGE源数据集名1源数据集名2;BY合并变量名;RUN;说明:1)MERGE语句可以合并任意多个数据集。2)合并前必须对输入数据集按照合并变量进行排序。,3)对于一个数据集中的一条观测,如果另一个数据集中没有排序变量相等的观测,则系统在结果数据集中也构造一条新观测,并且在属于另一个数据集的变量中设置缺省值。4)对于一个数据集中的一条观测,在另一个数据集中可能有多条观测的排序变量与之相等,那么有几条排序变量相等的观测就在结果数据集中生成几条新观测。5)可以在DATA或MERGE语句中对变量进行重命名,选项格式如下:(RENAME=(原变量名=新变量名),例15:新建两数据集person和salary并合并为一个新数据集persal。,dataperson;inputIDLName$FName$;cards;2538DeanSharon2559CarterDorothy2658ArthurBarbary3992CooperAnthony;run;procsortdata=person;byID;run;,datasalary;inputIDSalary;cards;253832886399243567;run;procsortdata=salary;byID;run;datapersal;mergepersonsalary;byID;run;,结果如下:,8SAS程序的控制结构,SAS语言的三种程序控制结构,顺序结构,分支结构,循环结构,说明:这三种程序控制结构都可以在程序步中(包括数据步和过程步)实现。,1.顺序结构语句序列的执行顺序与其在程序中的排列顺序是一致的。2.分支结构2.1单分支及双分支结构一般形式1:IF条件表达式THEN语句1;ELSE语句2;说明:如果不包含方括号中的可选项,就是单分支结构;否则是双分支结构。这种分支结构的每个分支只能包含一条语句。,例16:参照例13,在创建数据集的同时,计算每个航班的总人数及其收入,保存到变量REV和TOTAL中。假设到达拉斯(DFW)的机票价格是$600,到洛杉矶(LAX)的机票价格是$900。dataflight;infiled:dstDFW.dat;inputFlightID$1-3Datedate7.Dest$11-13Boarded14-16Trans17-19Aircrew20-22;Total=Boarded+Trans+Aircrew;ifdest=DFWthenRev=(boarded+trans)*600;elseifdest=LAXthenRev=(boarded+trans)*900;run;,一般形式2:IF条件表达式THENDO;语句序列1;END;ELSEDO;语句序列2;END;说明:在这种分支结构中,每个分支可以包含多条语句,以成对出现的DO;END;对表示其开始和结束。,例17:在例16中的数据集中再增加一个变量City,用来表示每个航班目的地的名字。dataflight;infiled:dstdfw.dat;inputFlightID$1-3Datedate7.Dest$11-13Boarded14-16Trans17-19Aircrew20-22;Total=Boarded+Trans+Aircrew;ifdest=DFWthendo;Rev=(boarded+trans)*600;City=Dallas;end;elseifdest=LAXthendo;Rev=(boarded+trans)*900;City=LosAngeles;end;run;,2.2多分支结构一般格式1:SELECT(选择表达式);WHEN(值列表1)语句1;WHEN(值列表2)语句2;OTHERWISE语句n;END;说明:执行分支语句i的条件是:选择表达式IN(值列表i)每条分支语句执行完毕后自动将控制转到分支结构末尾;OTHERWISE语句是可选项,当选择表达式的值不在所有值列表中时执行该语句。,一般格式2:SELECT;WHEN(条件表达式1)语句1;WHEN(条件表达式2)语句2;OTHERWISE语句n;END;说明:执行分支语句i的条件是:条件表达式i=0。每条分支语句执行完毕后自动将控制转到分支结构末尾;OTHERWISE语句是可选项,当所有条件表达式不成立时执行该语句。,例18:对系统提供的数据集sashelp.class进行修改生成新数据集work.class。增加变量Wtgrade保存体重级别,小于90磅的为Lig
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安东集团面试题及答案
- 铁军学院考试题及答案
- 光大证券财务面试题及答案
- 2025年合肥肥东县招聘乡镇消防岗位人员考试笔试试题(含答案)
- 菏泽医保考试题及答案
- 《望岳》考试题及答案
- 兽医SOP流程测试题及答案
- 2025年版评审准则考核试题(附答案)
- 医疗器械不良事件-注册人培训考试试题及答案
- 急救护理学试题含答案
- 失眠的预防与中医护理
- 2025年云南高考真题化学试题含答案
- 2025-2030年中国再生建筑骨料行业市场现状供需分析及投资评估规划分析研究报告
- 2025届中考物理全真模拟卷【云南专用】(含解析)
- 大型医院食堂管理制度
- JG/T 355-2012天然石材用水泥基胶粘剂
- 2025消瘦诊治与管理专家共识解读课件
- DB62T 4248-2020 青海云杉育苗技术规程
- DB32/T 3390-2018一体化智能泵站应用技术规范
- 2025“铸牢中华民族共同体意识”应知应会网络知识竞赛试题及答案(三套)
- 2025年家庭教育指导考试试卷及答案总结
评论
0/150
提交评论