资源预览内容
第1页 / 共89页
第2页 / 共89页
第3页 / 共89页
第4页 / 共89页
第5页 / 共89页
第6页 / 共89页
第7页 / 共89页
第8页 / 共89页
第9页 / 共89页
第10页 / 共89页
亲,该文档总共89页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第11章 全局通用语句清华大学经管学院 朱世武v 全局通用语句是可以用在任何地方的SAS语 句。这些语句既可以用在数据步(DATA步) ,也可以用在过程步(PROC步),甚至还可以单 独使用。 注释语句 v 注释语句可以放在SAS程序的任何地方作为程序的 说明,或者介绍整个程序的步骤或算法等。语句格式格式一: * message; 信息的长度可任意,但不能包含分号(;),最后的分号表示 信息结束。格式二: /*message*/中间的信息可以包含分号,但这种形式的注释不能嵌套。应用举例 例11.1 注释语句应用。 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 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. 注意:键入EXIT命令退出操作系统返回到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 取消第3级及以后的所有标题内容。 title3;FOOTNOTE语句 FOOTNOTE语句在每一页的底部输出一些脚注行。最多可 产生10个脚注行。语句格式: FOOTNOTE;其中: n紧跟在词FOOTNOTE后面(不能有空格)的数字,用来规定脚注 的行号; text规定脚注行的内容。规定的脚注行内容将输出在所有过程的输出页上,但可以重新规定 或取消。例11.12 规定脚注。 footnote 清华大学金融系;例11.13 取消所有已规定的脚注行。 footnote;例11.14 取消第3个及以后的所有脚注行。 footnote3; RUN语句 RUN语句使SAS程序被执行。语句格式: RUN ; 其中: 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语之前执行PROC MEANS 步。如果省略第一个RUN语,SAS系统在它读PROC PLOT语句之后 执行PROC MEANS步。这时第二个TITLE语覆盖第一个TITLE语,也 就是两个过程的输出都包含了标题USING PROC PLOT。所以,这 种情况下,第一个RUN语不能省略。using proc plot 17MEANS 过程变量 最小值 最大值-Age 11.0000000 16.0000000Height 51.3000000 72.0000000Weight 50.5000000 150.0000000-using proc means 16MEANS 过程变量 最小值 最大值-Age 11.0000000 16.0000000Height 51.3000000 72.0000000Weight 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(库标记名)和一个目录名联系 起来,使用户可在SAS语句中使用库标记来指示这个目录。语句格式 LIBNAME libref ; LIBNAME libref Clear; LIBNAME libref |_ All_ List; 三种格式反映了LIBNAME语句的三种用法。选项说明应用举例 例11.18 LIBNAME规定不同引擎的逻辑库。 libname 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 SASDB3 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 多个不同的逻辑库组成一个逻辑库。 libname new (resdat resstk);FILENAME语句 v FILENAME语句把SAS的文件标记与外部文件的全名或输 出设备联系起来。v 用INFILE,FILE,或%INCLUDE语句中调用SAS文件前 ,要先使用FILENAME语句来定义文件。v 用户可以把一个文件标记同单个外部文件建立联系,也可 以很多外部文件建立联系。v 文件标记和文件名字之间的联系只保持在SAS会话期间, 或下一个FILENAME语句再定义前。语句格式 建立文件标记与外部文件的联系: FILENAME fileref external-file;清除文件标记与外部文件的联系: FILENAME fileref|_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)应用举例 例11.29 读入外部文件创建SAS数据集。filename delinfo “d:resdatdelinfo.txt“; data delinfo(label=退市信息|delist information); format stkcd $6. lstknm $12. lstdt yymmdd10. delistdt yymmdd10. exchflg $1. stktype $1. ; informat stkcd $6. lstknm $12. lstdt yymmdd10. delistdt yymmdd10. exchflg $1. stktype $1. ; label stkcd=股票代码|stock code lstknm=最新股票名称|latest stock name lstdt=股票上市日|list date delistdt=退市日期|delist date exchflg=交易所标识|exchange flag stktype=股票类型|stock type; infile delinfo delimiter=09x missover dsd firstobs=2; input stkcd $6. lstknm $12. lstdt yymmdd10. delistdt yymmdd10. exchflg stktype 1. ; run; 例中,用文件标记delin
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号