ImageVerifierCode 换一换
格式:PPT , 页数:60 ,大小:1.72MB ,
文档编号:2868572      下载积分:28 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-2868572.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(SAS编程技术全局通用语句课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

SAS编程技术全局通用语句课件.ppt

1、第第11章章 全局通用语句全局通用语句清华大学经管学院清华大学经管学院 朱世武朱世武ZResdat样本数据:样本数据:SAS论坛:论坛: v 全局通用语句是可以用在任何地方的SAS语句。这些语句既可以用在数据步(DATA步),也可以用在过程步(PROC步),甚至还可以单独使用。 注释语句注释语句 v 注释语句可以放在SAS程序的任何地方作为程序的说明,或者介绍整个程序的步骤或算法等。语句格式格式一:* message;信息的长度可任意,但不能包含分号(;),最后的分号表示信息结束。 格式二:/*message*/中间的信息可以包含分号,但这种形式的注释不能嵌套。应用举例应用举例 例11.1 注

2、释语句应用。proc print data=ResDat.stk000002 (obs=10) noobs; /*输出前10个观测,不输出观测序号*/var oppr hipr lopr clpr;title股票行情;run;proc means data=ResDat.stk000002 ; *对数据集ResDat.stk000002使用means过程;var oppr hipr lopr clpr; /*输出变量oppr hipr lopr clpr的均值*/run;例11.2 标准SAS程序开头,记录SAS程序信息的注释形式。/*-*/ /*- Begin Estimation for

3、Grunfelds Investment Models -*/ /*- See SAS/ETS Users Guide, Version 5 Edition, -*/ /*- pages -*/ /*-*/ X语句语句 运行SAS系统时,发布主机操作系统命令。 语句格式:X ;其中:command规定主机操作系统的命令。 例11.8 应用举例。x mkdir d:ResDat1;libname ResDat1 d:ResDat1;data ResDat1.class;set ResDat.class;run;例中,在SAS会话期间用主机操作系统命令创建一个目录D:ResDat_3.注意:键入E

4、XIT命令退出操作系统返回到SAS会话。TITLE语句语句 TITLE语句规定SAS输出文件和其它SAS输出标题。每一个TITLE语规定一级标题,最多可规定10级标题。 语句格式:TITLE;其中: n紧跟在词TIILE后面(不能有空格)的数字,用来规定标题的级别; text规定标题的内容。规定标题的内容一直有效,但可以重新规定或取消。例11.9 只规定第1和第5级标题的内容时,中间标题为空白。title this is the 1th title line;title5 this is the 5th title line; 例11.10 取消所有标题内容。title; 例11.11 取消第

5、3级及以后的所有标题内容。title3;FOOTNOTE语句语句 FOOTNOTE语句在每一页的底部输出一些脚注行。最多可产生10个脚注行。 语句格式:FOOTNOTE;其中: n紧跟在词FOOTNOTE后面(不能有空格)的数字,用来规定脚注的行号; text规定脚注行的内容。规定的脚注行内容将输出在所有过程的输出页上,但可以重新规定或取消。例11.12 规定脚注。footnote 清华大学金融系; 例11.13 取消所有已规定的脚注行。footnote; 例11.14 取消第3个及以后的所有脚注行。footnote3; RUN语句语句 RUN语句使SAS程序被执行。 语句格式:RUN ;其中

6、:CANCEL让SAS系统结束当前步的执行。SAS将输出一个信息说明这一步没有执行。但CANECL选项不能阻止包含CARDS或CARDS4语句的DATA步执行。例11.15 不能省略RUN语句的情况。title using proc means;proc means data=ResDat.class min max;var age height weight;run; /*此RUN语不能省略省略RUN语句 */title using proc plot;proc plot data=ResDat.class;plot age*height;run;例中,第一个RUN语句在读第二个TITLE语

7、之前执行PROC MEANS步。如果省略第一个RUN语,SAS系统在它读PROC PLOT语句之后执行PROC MEANS步。这时第二个TITLE语覆盖第一个TITLE语,也就是两个过程的输出都包含了标题USING PROC PLOT。所以,这种情况下,第一个RUN语不能省略。 using proc plot 17 MEANS 过程 变量 最小值 最大值 - Age 11.0000000 16.0000000 Height 51.3000000 72.0000000 Weight 50.5000000 150.0000000 - using proc means 16 MEANS 过程 变量

8、最小值 最大值 - Age 11.0000000 16.0000000 Height 51.3000000 72.0000000 Weight 50.5000000 150.0000000 -不省略run省略run例11.16 使用选项CANCEL。proc means data=ResDat.idx000001;var clpr X; /*注意数据集中没有变量X */run cancel;例中,当发现SAS程序有错误不能运行这一段序时,使用选项CANCEL结束当前步的执行。LIBNAME语句语句 v LIBNAME语句定义SAS逻辑库。v LIBNAME语句把一个libref(库标记名)和一

9、个目录名联系起来,使用户可在SAS语句中使用库标记来指示这个目录。语句格式 LIBNAME libref ;LIBNAME libref Clear;LIBNAME libref |_ All_ List;三种格式反映了LIBNAME语句的三种用法。选项说明 Libref规定逻辑库Engine规定引擎Sas-Data-Library规定主机系统下一个有效的物理地址Access=Readonly|Temp规定逻辑库为只读或可修改属性Clear清除与库标记的联系_All_列出所有逻辑库的属性List在Log窗口列出逻辑库的属性。应用举例应用举例 例11.18 LIBNAME规定不同引擎的逻辑库。l

10、ibname SASDB1 tape SAS- data-library; /*规定一个TAPE引擎*/libname SASDB2 V6 SAS- data-library; /*规定版本为V6引擎*/libname SASDB3 ODBC SAS- data-library; /*规定版本为ODBC引擎*/ 例11.19 不同引擎的逻辑库数据集的转换。libname ResDatv6 v6 D:ResDat;data ResDatv6.class;set ResDat.class;run; 例11.20 对已经存在的逻辑库使用LIBNAME语句联系一个SAS引擎。libname SASDB

11、3 ODBC;例11.21 一个物理地址联系两个库标记。libname ResDat1 D:ResDat;libname ResDat2 D:ResDat;run; 例11.23 脱离与库标记的联系。LIBNAME libref CLEAR; 例11.24 列出逻辑库的属性。libname ResDat list; /*列出逻辑库ResDat的属性 */libname _all_ list; /*列出所有逻辑库的属性 */run;例11.25 多个物理地址指定一个逻辑库。libname new (d: resdat d:resstk);例11.26 多个不同的逻辑库组成一个逻辑库。libnam

12、e new (resdat resstk);FILENAME语句语句 v FILENAME语句把SAS的文件标记与外部文件的全名或输出设备联系起来。v 用INFILE,FILE,或%INCLUDE语句中调用SAS文件前,要先使用FILENAME语句来定义文件。v 用户可以把一个文件标记同单个外部文件建立联系,也可以很多外部文件建立联系。v 文件标记和文件名字之间的联系只保持在SAS会话期间,或下一个FILENAME语句再定义前。语句格式语句格式 建立文件标记与外部文件的联系:FILENAME fileref external-file; 清除文件标记与外部文件的联系:FILENAME file

13、ref|_ALL_CLEAR; 建立文件标记与某个输出设备的联系:FILENAME fileref device-type; 列出外部文件的属性:FILENAME fileref|_ALL_LIST; 其它格式:FILENAME fileref CATALOG catalog;FILENAME fileref FTPexternal-file;FILENAME fileref SOCKET external- file;FILENAME fileref SOCKET: portno SERVER ;选项说明选项说明 部分选项说明: 设备类型(DEVICE-TYPE)Fileref规定任意有效的

14、SAS名External-File规定外部文件的物理地址和名字Device-Type规定要联系输出设备的类型Host-Option规定主机系统的属性Disk磁盘引擎器Tape磁带引擎器Dummy空设备Terminal 终端Printer打印机Plotter绘图仪应用举例应用举例 例例11.2911.29 读入外部文件创建SAS数据集。filename delinfo d:resdatdelinfo.txt;data delinfo(label=退市信息|delist information);format stkcd $6. lstknm $12. lstdt yymmdd10. delist

15、dt yymmdd10. exchflg $1.stktype $1. ;informat stkcd $6. lstknm $12. lstdt yymmdd10. delistdt yymmdd10. exchflg $1.stktype $1. ;labelstkcd=股票代码|stock codelstknm=最新股票名称|latest stock namelstdt=股票上市日|list datedelistdt=退市日期|delist dateexchflg=交易所标识|exchange flagstktype=股票类型|stock type;infile delinfo deli

16、miter=09x missover dsd firstobs=2;input stkcd $6. lstknm $12. lstdt yymmdd10. delistdt yymmdd10. exchflg stktype 1. ;run;例中,用文件标记delinfo识别外部文件(d:resdatdelinfo.txt),读取其中的数据行,创建一个临时数据集delinfo. 例11.34 将逻辑库的所有文件传送到一个压缩文件。filename ResDat d:ResDatResDat;proc cport library=ResDat file=ResDat memtype=data;r

17、un;例中,将SAS逻辑库ResDat下的所有数据集传送到压缩文件ResDat中。 例11.35 恢复将传送压缩为一个逻辑库。libname ResDat_0 d:ResDat_0;proc cimport library=ResDat_0 infile=ResDat;run;例中,恢复由CPORT过程生成的传送压缩文件ResDat为原来的形式。MISSING语句语句 MISSING语句规定数值数据缺失值的代表字符。它通常出现在DATA步,但其使用范围是全局性的。语句格式语句格式MISSING character-1,其中:character缺失值代表字符。应用举例应用举例 例11.42 读入

18、有缺失值数据时必须用MISSING语句。data fitness;missing n r;input name$ age weight;cards;Wang 23 78Hu R 60Tian R N;例中,N表示被调查人不知道,R表示被调查人拒绝回答问题。MISSING语句指示在输入数据行里N和R的值是缺失值而不是无效的数据值。nameageweightWang2378Hu R60Tian R NOPTIONS语句语句 v OPTIONS语句临时改变SAS系统的选项设置。v 改变后的选项设置在以后的SAS会话或作业中保持有效,直到再次改变它们。v 改变SAS系统选项可以用OPTIONS语句,或

19、用显示管理命令OPTIONS菜单。 语句格式:OPTIONS option-1 ;其中:option规定要改变的SAS系统选项。 例11.43 运行调试好程序时常用的系统选项。OPTIONS NODATE NONOTES NOSOURCE; 例中,运行调试好的大型程序时,为了抑制LOG和OUTPUT窗口的输出,用上面的系统选项就可以解决问题。第第18章章 IML编程技术编程技术清华大学经管学院清华大学经管学院 朱世武朱世武ZResdat样本数据:样本数据:SAS论坛:论坛: 本章内容包括:本章内容包括: 概述; 理解IML语言; 线型回归IML模块。 矩阵操作; IML编程语句; SAS 数据

20、集操作; 访问外部文件。概述概述 SAS/IML(Interactive Matrix Language)是在一种在动态和交互式环境下实现的强大而灵活的过程语言(交互式矩阵语言)。IML最基本的数据对象是矩阵。在SAS/IML模式下,可以立刻看到语句运行的结果,也可以把语句贮存在一个模块中为以后使用。SAS/IML软件特点软件特点 利用SAS/IML软件可以轻易地进行高效编程和使用一系列子程序。因为SAS/IML软件是SAS系统的一个模块,所以,可以使用SAS数据集和外部文件,也可以对一个已有的SAS数据集进行编辑或者创建一个新的SAS数据集。 SAS/IML软件是一种编程语言; SAS/IM

21、L软件对矩阵作运算; SAS/IML软件有强大的算符功能,有许多函数和CALL子程序; SAS/IML软件将算符应用到整个矩阵; SAS/IML软件是交互式的; SAS/IML软件是动态的; SAS/IML软件可以处理数据; SAS/IML软件可以作图。一个简单一个简单IML交互程序交互程序 例18.1 求平方根IML程序。proc iml; /* 激活IML */reset deflib=ResDat; /*指定ResDat为缺省的SAS逻辑库*/start approx(x); /* 定义模块开始 */ y=1; /* 初始化y */ do until(w1e-3); /* 循环开始, l

22、e-3=0.001 */ z=y; y=.5#(z+x/z); /* 估计开方根,牛顿迭代 */ w=abs(y-z); /* 计算估计值之间的差异 */ end; /* 循环结束 */ return(y); /* 返回近似值 */finish approx; /* 模块结束 */t=approx(3,5,7,9); /* 调用函数APPROX */print t; /* 打印矩阵 */quit;run; T 1.7320508 2.236068 2.6457513 3OUTPUT窗口结果牛顿迭代法求f(z)=0一个实根的方法牛顿迭代法公式:1()()nnnnf zzzfz上例中函数为:xzz

23、f2)(理解理解IML语言语言 定义矩阵定义矩阵SAS/IM软件对矩阵作运算,这里矩阵的定义同矩阵代数中矩阵的定义一样,是一个两维的(行列)数组。SAS/IM软件可以定义数值矩阵也可以定义字符矩阵。 特殊矩阵定义:1N矩阵称作行向量;M1矩阵称作列向量;11矩阵称作标量.矩阵名字与标识矩阵名字与标识 矩阵名字是一个合法的SAS名字,不能超过8字节。矩阵标识是由它的值表示的矩阵。 例18.2 矩阵名举例。A, XX, MATRIX1. 例18.3矩阵标识举例。100, ., HI, 1 2 2 8 8 , 3, 3, 6,6.由矩阵标识创建矩阵由矩阵标识创建矩阵 创建标量矩阵例18.4创建标量矩

24、阵。proc iml;reset deflib=ResDat; a=100;b=. ;c=IML;创建数值矩阵含有多个元素的矩阵标识要用括号把元素括起来。用逗号将矩阵的行分开。 例18.5 由矩阵标识创建的数值阵。X=1 2 3 4 5 6; /*定义一个行向量X*/Y=1,2,3,4,5; /*定义一个列向量Y*/Z=1 2, 3 4, 5 6; /*定义一个32矩阵Z*/W=3#Z; /*创建一个新矩阵W,它的每个元素是矩阵Z相应元素的3倍*/创建字符矩阵例18.6创建字符矩阵时,字符长度取最长字符的长度。a=IML Modual; /*字符长度以较长的字符为准,这里为6*/B=abc D

25、EFG;重复因子重复因子用括弧括起来放在要重复的元素前面。 例18.7 用与不用重复因子的等价语句。ANS=2 Yes, 2 No; ANS=Yes Yes, No No;赋值语句结果表达式:w=3#z; 函数作为表达式:a=sqrt(b); y=inv(x);r=rank(x);表达式中的三种运算符表达式中的算符 算符在表达式中的位置前缀运算符放在运算对象前面(-A)中缀运算符放在运算对象之间(A*B)后缀运算符放在运算对象后面(A)语句类型语句类型 SAS/IML软件语句大致分为三类: 控制语句; 函数和CALL语句; 命令语句。函数的一般形式:Result = Function (arg

26、uments);其中:Argument可以是矩阵名,矩阵本身或表达式。 SAS/IML软件中的函数类型: 矩阵查询函数; 标量函数; 概括函数; 矩阵变形函数; 矩阵算术函数; 线性代数和统计函数。函数函数例18.8 IML随机数函数应用举例。Rv=Uniform(Repeat(0, 10, 1); Rv =Ranuni(Repeat(0,10,1);Rv =Normal(Repeat(0,10,1);Rv =Rannor(Repeat(0,10,1);Rv =Ranbin(Repeat(0,10,1),20,0.5); Rv =Rancau(Repeat(0,10,1);Rv =Ranexp

27、(Repeat(0,10,1);Rv =Rangam(Repeat(0,10,1),1); Rv =Ranpoi(Repeat(0,10,1),2); Rv =Rantri(Repeat(0,10,1),3);例中,形式REPEAT(X, Y, Z)中,X是随机数种子,Y是产生的随机数个数,Z是产生的随机数列数。例18.9 DATA步下随机数产生SAS程序例子。data RV;retain _seed_ 0; /*retain 赋初值0给_seed_*/mu=0;sigma=1; do _i_ = 1 to 1000; Normal1 = mu + sigma * rannor(_seed_)

28、; /*均值为mu,标准差为sigma*/ output; end; drop _seed_ _i_ mu sigma;run;SAS/IML不支持OF语句:A=mean(of x1-x10);在SAS/IML中x1-x10被当成x1减x10,而不是x1到x10.CALL语句与子程序语句与子程序CALL SUBROUTINE arguments ; 例18.10 使用CALL子程序。call eigen(val,vec,t);call delete(DAT);第一个例句,用CALL语句创建矩阵, 得到矩阵t的特征值和特征向量。第二句,删除数据集DAT。例18.11 自建子程序。start my

29、mod(a,b,c); a=sqrt(c); b=log(c);finish;run mymod(a, b, 10); /*运行模型MYMOD*/run mymod(x, y, 10);例中,建立一个模块MYMOD,分别得到输入矩阵的平方根和自然对数值。 CALL的其它一用法:call gstart; /*激活graphics模块 */call gopen; /*打开一个新的graphics片段*/call gpoint(x,y); /*作散点图*/call gshow; /*显示散点图*/命令命令 利用SAS/IML命令用于实现一些具体的系统功能,例如,存贮和加载矩阵、或进行特定的数据处理等

30、。例18.12 SAS/IML命令用法举例。proc iml; A=1 2 3, 4 5 6, 7 8 9; B=2 2 2;show names;store a b;show storage; remove a b; /*移走矩阵a,b*/show storage;load a b;quit;proc iml; A=1 2 3, 4 5 6, 7 8 9;B=2 2 2;print a b;free a b; /*清空矩阵a, b*/print a b;quit;缺失值缺失值 v SAS/IML软件也有缺失值的问题。注意,矩阵中的缺失值不能视为0,矩阵标识中,数值缺失值用点”.”表示。 v

31、SAS/IML软件支持缺失值的方式是有限的。许多矩阵运算不允许有缺失值,比如,矩阵乘法、矩阵求逆等。另外,支持缺失值的矩阵运算也会产生不一致的结果。线性回归线性回归IML模块模块 解方程组 例18.13 线性解方程组。 用符号表示为:Ax = c解方程组程序: proc iml;a=3 -1 2, 2 -2 3, 4 1 -4;c=8, 2, 9;x=inv(a)*c;print a c x;quit;run;1231231233282232449xxxxxxxxx A C X 3 -1 2 8 3 2 -2 3 2 5 4 1 -4 9 2结果:线性回归线性回归IML模块程序模块程序 例18

32、.14线性回归IML模块程序。proc iml;x=1 1 1, 1 2 4, 1 3 9, 1 4 16, 1 5 25;y=1,5,9,23,36;b=inv(t(x)*x)*t(x)*y;yhat=x*b;r=y-yhat;sse=ssq(r);dfe=nrow(x)-ncol(x);mse=sse/dfe;start regress; /* 定义模块开始 */xpxi=inv(t(x)*x); /* 矩阵XX的逆 */beta=xpxi*(t(x)*y); /* 参数估计 */yhat=x*beta; /* 预测值 */resid=y-yhat; /* 残差 */sse=ssq(res

33、id); /* SSE */n=nrow(x); /* 观测值数 */dfe=nrow(x)-ncol(x); /* 误差自由度DF */mse=sse/dfe; /* MSE */cssy=ssq(y-sum(y)/n); /* 校正平方和 */rsquare=(cssy-sse)/cssy; /* RSQUARE */print,Regression Results, sse dfe mse rsquare;stdb=sqrt(vecdiag(xpxi)*mse); /* 参数估计的标准差 */t=beta/stdb; /* 参数的t检验 */prob=1-probf(t#t,1,dfe)

34、; /* p-值 */print,Parameter Estimates, beta stdb t prob;print,y yhat resid;finish regress; /* 模块结束 */reset noprint; run regress; /* 执行REGRESS 模块 */reset print; /* 打开自动打印 */covb=xpxi*mse; /* 参数估计协方差阵 */s=1/sqrt(vecdiag(covb);corrb=diag(s)*covb*diag(s); /* 参数估计的相关系数 */x1=1,2,3,4,5; /* 矩阵X的第二列 */x=orpol

35、(x1,2); /* 产生正交多项式 */reset noprint; /* 关闭自动打印 */run regress; /* 运行REGRESS */reset print;covb=xpxi*mse;s=1/sqrt(vecdiag(covb);corrb=diag(s)*covb*diag(s);reset fuzz;corrb=diag(s)*covb*diag(s);矩阵操作矩阵操作 v 输入数据创建矩阵标识 v 使用赋值语句创建矩阵 v 使用矩阵表达式 v 利用行列标展现矩阵 v 缺失值运算举例 输入数据创建矩阵标识输入数据创建矩阵标识 SAS/IML中可以使用多种方式输入数据创建

36、矩阵标识。 创建标量矩阵标识例18.16 创建标量矩阵例。proc iml;x=12;y=12.34;z=.;a=Hello;b=Hi there;print x y z a b; X Y Z A B 12 12.34 . Hello Hi there创建多元素矩阵创建多元素矩阵时,用括号把元素括起来,用逗号(,)把行分开。 例18.17 创建多元素矩阵例。reset print; coffee=4 2 2 3 2, 3 3 1 2 1, 2 1 0 2 1, 5 4 4 3 4;names=Jenny, Linda, Jim, Samuel;print coffee rowname=names;

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|