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

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

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

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