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

2026/4/27 21:12:20

例3 动物园给动物喂食的数据(C:\\MyRawData\\zoo.dat),变量为动物类型、生物学分类、居住区域、喂食时间(上午/下午/两者):

读入数据并输出两个列表,一个是早上喂食,一个是下午喂食。 代码:

data morning afternoon;

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

input Animal $ 1-9 Class $ 11-18 Enclosure $ FeedTime $; if FeedTime = 'am' then output morning;

else if FeedTime = 'pm' then output afternoon; else if FeedTime = 'both' then output;

/* 每个数据集都输出,省略数据集名 */

run;

proc print data = morning;

title 'Animals with Morning Feedings'; proc print data = afternoon;

title 'Animals with Afternoon Feedings'; run;

运行结果:

三、用IF-THEN语句将观测值分组

对观测值分组,实际上只是为每个观测值分配一个分组标签,用新的列变量存储分组标签,这样后续就可以借助分组关键词(class),对数据做分组处理。

例4 住房改善的数据(C:\\MyRawData\\home.dat),包括了姓名、改善工作、改善成本:

读取数据,并新建了一个CostGroup的变量。根据Cost的值将数据分成high、medium、low和missing三类。 代码:

data homeimprovements;

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

input Owner $ 1-7 Description $ 9-33 Cost; if Cost =. then CostGroup = 'missing';

else if Cost < 2000 then CostGroup = 'low';

else if Cost < 10000 then CostGroup = 'medium'; else CostGroup = 'high'; run;

proc print data = homeimprovements; title 'Home Improvement Cost Groups'; run;

运行结果:

程序说明:缺省值要单独分组,否则将归类到low类(缺省值默认是

最小值,甚至比负数都小)。

(二) WHERE语句

二、 基本语法

WHERE语句和IF语句作用基本相同,不同在于IF语句只用于数据步,WHERE语句还可用于过程步(不创建新数据集),作用是让“只有满足条件的观测值被proc过程处理”。语法: where 条件;

例5 画家信息的数据文件(C:\\MyRawData\\ Artists.dat),包括画家姓名、流派、国别:

读入数据,只输出流派为Impressionism的画家。 代码:

data painters;

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

input Name $ 1-21 Genre $ 23-40 Origin $ 42; run;

proc print data = painters; where Genre = 'Impressionism';

title 'Major Impressionist Painters';

footnote 'F = France N = Netherlands U = US'; run;


SAS学习系列07. IF和WHERE语句.doc 将本文的Word文档下载到电脑
搜索更多关于: SAS学习系列07. IF和WHERE语句 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219