第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/5/30 6:11:16 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

07. IF和WHERE语句

(一) IF-THEN语句

一、基础语法

做选择时需要用到条件语句:若满足??条件,则执行?? 语法:

if 条件 then 执行语句;

若有多个执行语句,则用

if 条件 then DO;

执行语句1; 执行语句2; END;

多选择分支,则用

if 条件 then 执行语句; else if 条件 then 执行语句; else 执行语句;

SAS中常用的比较、逻辑算符(也见系列02):

符号 = 或eq ^= 或ne > 或gt < 或lt >= 或ge 含义 等于 不等于 大于 小于 大于等于 示例 name = 'Jones, C.'; temp ^= 212; income > 20000; partno < \id >= '1543'; <= 或le contains或 ? in and or 小于等于 包含 属于 且 或 pulse <= 85 firstname contains 'Jon'; actlevel in ('LOW','MOD'); fee in (124.80,178.20); age<=55 and pulse>75; area='A' or region='S';

二、数据步中使用IF-THEN语句赋值

数据步中经常需要有选择地赋值新变量或修改原数值。

例1 稀有古董汽车拍卖的数据文件(C:\\MyRawData\\ Auction.dat)包含了品牌、型号、制造年份、座位数、价格(百万美元):

使用IF-THEN语句填满缺失值,并创建一个新变量Veteran. 代码:

data oldcars;

infile 'c:\\MyRawData\\Auction.dat';

input Make $ 1-13 Model $ 15-29 YearMade Seats MillionsPaid;

if YearMade < 1890 then Veteran = 'Yes'; if Model = 'F-88' then DO; Make = 'Oldsmobile'; Seats = 2; end;

run;

proc print data = oldcars; title 'Cars Sold at Auction'; run;

运行结果:

二、 数据步中使用IF-THEN语句创建子数据集(也见系列03)

1. 数据步读入数据时,用IF-THEN语句选择满足条件的数据读入。语法: if 条件;

如果“条件”为真,则数据步将继续执行。还可以使用DELETE语句,来删除哪些不要的数据: 下面这两句话是等价的:

if Sex='f';

if Sex='m' then DELETE;

例2 莎士比亚歌剧的清单(C:\\MyRawData\\Shakespeare.dat),包含歌剧名、首次表演年份、类型:

读取数据,并且用IF语句构造一个只包含喜剧(comedies)的子集: 代码:

data comedy;

infile 'c:\\MyRawData\\Shakespeare.dat'; input Title $ 1-26 Year Type $; if Type = 'comedy'; run;

proc print data = comedy;

title 'Shakespearean Comedies'; run;

运行结果:

2. 数据步中用IF-THEN语句创建多个数据集

若想在一个数据步中创建多个数据集,在DATA语句后面多接几个数据集名即可。用IF-THEN语句可以分别将数据写入不同的数据集。

搜索更多关于: SAS学习系列07. IF和WHERE语句 的文档
SAS学习系列07. IF和WHERE语句.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c4fxu93o2si0zdc4257b5_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top