SAS学习系列07IF和WHERE语句.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SAS学习系列07IF和WHERE语句

07. IF和WHERE语句IF-THEN语句一、基础语法做选择时需要用到条件语句:若满足……条件,则执行……语法:if 条件 then 执行语句;若有多个执行语句,则用if 条件 then DO;执行语句1;执行语句2; END;多选择分支,则用if 条件 then 执行语句; else if 条件 then 执行语句; else 执行语句;SAS中常用的比较、逻辑算符(也见系列02):符号含义示例= 或eq等于name=Jones,C.;^= 或ne不等于temp ^= 212; 或gt大于income20000; 或lt小于partno BG05;= 或ge大于等于id=1543;= 或le小于等于pulse = 85contains或?包含firstnamecontains Jon;in属于actlevel in (LOW,MOD);fee in (124.80,178.20);and且age=55 and pulse75;or或area=A or region=S;二、数据步中使用IF-THEN语句赋值数据步中经常需要有选择地赋值新变量或修改原数值。例1稀有古董汽车拍卖的数据文件(C:\MyRawData\Auction.dat)包含了品牌、型号、制造年份、座位数、价格(百万美元):使用IF-THEN语句填满缺失值,并创建一个新变量Veteran.代码:dataoldcars;infilec:\MyRawData\Auction.dat;input Make $ 1-13 Model $ 15-29YearMade Seats MillionsPaid;ifYearMade 1890then Veteran = Yes;if Model = F-88thenDO; Make = Oldsmobile; Seats = 2;end;run;procprintdata = oldcars;titleCars Sold at Auction;run;运行结果:数据步中使用IF-THEN语句创建子数据集(也见系列03)数据步读入数据时,用IF-THEN语句选择满足条件的数据读入。语法:if 条件;如果“条件”为真,则数据步将继续执行。还可以使用DELETE语句,来删除哪些不要的数据:下面这两句话是等价的:if Sex=f; if Sex=m then DELETE;例2莎士比亚歌剧的清单(C:\MyRawData\Shakespeare.dat),包含歌剧名、首次表演年份、类型:读取数据,并且用IF语句构造一个只包含喜剧(comedies)的子集:代码:data comedy;infilec:\MyRawData\Shakespeare.dat;input Title $ 1-26 Year Type $;if Type = comedy;run;procprintdata = comedy;titleShakespearean Comedies;run;运行结果:数据步中用IF-THEN语句创建多个数据集若想在一个数据步中创建多个数据集,在DATA语句后面多接几个数据集名即可。用IF-THEN语句可以分别将数据写入不同的数据集。例3动物园给动物喂食的数据(C:\MyRawData\zoo.dat),变量为动物类型、生物学分类、居住区域、喂食时间(上午/下午/两者):读入数据并输出两个列表,一个是早上喂食,一个是下午喂食。代码:data morning afternoon;infilec:\MyRawData\Zoo.dat;input Animal $ 1-9 Class $ 11-18 Enclosure $ FeedTime $;ifFeedTime = amthenoutput morning;elseifFeedTime = pmthenoutput afternoon;elseifFeedTime = boththenoutput;/* 每个数据集都输出,省略数据集名 */run;procprintdata = morning;titleAnimals with Morning Feedings;procprintdata = afternoon;titleAnimals with Afternoon Feedings;run;运行结果:三、用IF-THEN语句将观测值分组对观测值分组,实际上只是为每个观测值分配一个分组标签,用新的列变量存储分组标签,这样后续就可以借助分组关键词(class),对数据做分组处理。例4 住房改善的数据(C:\MyRawData\home.dat),包括了姓名

文档评论(0)

haihang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档