sas宏应用及输出传送系统

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文件明细单包括控制选项、文件名、逻辑 名和目标磁盘
ODS的关闭文件命令
• • • • • ODS HTMLCLOSE; ODS OUTPUT CLOSE; ODS PRINTER CLOSE; ODS RTF CLOSE; ODS _ALL_ CLOSE;
ODS listing命令
语句的一般形式: ODS LISTING 〈控制选项〉〈file=文件名\逻 辑名〉; CLOSE 关闭listing目标 EXCLUDE 从listing中剔除输出对象 SELECT 从listing中选择输出对象 ODS LISTING SELECT BASICMEASURE;
语句的一般形式: ODS RTF〈FILE=‘通经名\子目录名\文件名’; 如:ODS PRINTER PS FILE=‘C:\TRAIL\STAT.RTF’; PROC MEANS; … RUN; ODS RTF CLOSE;
建立SAS数据集
语句的一般形式: ODS OUTPUT 输出内容=数据集名; 如:ODS OUTPUT BASICMEASURE=MYFILE.MEASURES; PROC UNIVARIATE; … RUN; ODS OUTPUT CLOSE;
引用宏变量
• 双引号和单引号的区别 %let city=Shanghai; title1"Data of &city" 结果:Data of Shanghai :Data title2’Data of &city’ • 宏变量的多次引用 如,%let mmm=Newcity; data temp; If num>=800; run; proc print; title”Subaet of Data Set &mmm”; run; 结果:Data of &city
宏的通常形式
例如: %macro 宏名; <宏文本>; %mend <宏名>; < >; %end; 宏名—— 在SAS中是唯一的,作为一个宏的标识。 宏文本——是宏语句、宏调用、文本表达式或恒定文本的组合
宏语言中的元素
• 宏语句 宏语句共有20多个。如: %GLOBAL 创建全局宏变量 %LET %MACRO %PUT %DO %END %MEND 给宏变量赋值 定义宏开始标记 将宏变量的值或文本写入SAS log窗口 宏循环开始 宏循环结束 宏定义结束
宏语句函数
• 宏函数 宏函数共有20个。如: %EVAL %INDEX 计算数学表达式和逻辑表达式的整数值 返回字符串每个字符的位置
%LENGTH 返回字符串的长度 %STR,%NSTR 在宏编译过程中,屏蔽一个恒定文本中的特殊 字符。 %SUBSTR 产生一个字符串的子串 例如:data out.%substr(&sysday,1,3);
ODS能够用以下几种格式产生输出: • HTML文件 • 传统的SAS输出 • PostScript文件(high-resolution printer) • RTF文件(Word) • 输出数据集
ODS的建立文件命令
• • • • ODS HTML文件明细单 ODS OUTPUT数据集定义 ODS PRINTER文件明细单 ODS RTF文件明细单
建立PostScript格式的输出
语句的一般形式: ODS PRINTER PS〈FILE=‘通经名\子目录名\文件 名’; 如:ODS PRINTER PS FILE=‘C:\TRAIL\STAT.PS’; PROC MEANS; … RUN; ODS PRINTER CLOSE;
建立RTF格式的输出
SAS系统定义的宏变量
• 当用户启动SAS之后,宏处理器会产生自 动宏变量,这些宏变量提供了有关SAS运 行期间的信息。 • 要使用宏变量,可以在宏符号&后跟上一 & 个宏变量名(如&SYSJOBID)。如自动宏 变量SYSDAY和SYSDATE;大约35个自动 宏变量 Footnote"Reprot for &sysday,&sysdate"; Footnote"Report for Tuesday,18OCT05";
MEAN、MEDIAN、MODE、SD、VAR、R、四分位数间距
建立HTML输出
语句的一般形式: ODS HTML 〈FILE=‘通经名\子目录名\文件名’; 如:ODS HTML FILE=‘C:\TRAIL\STAT.HTM’; PROC MEANS; … RUN; ODS HTML CLOSE;
包含SAS程序的宏
%MACRO PLOT; PROC PLOT; PLOT HEIGHT*WEIGHT; HEIGHT*WEIGHT RUN; %MEND PLOT; RUN; %PLOT PROC PRINT; RUN; DATA TEMP; SET LAB.HEALTH; IF SEX=1;
宏参数的建立
宏应用实例
例1:用循环语句%DO产生重复的文本
%macro names(name,number); %do n=1 %to &number; data &name&n; %end; %mend names; data %names(dsn,5); run;
结果:产生DSN1-DSN5五个数据集
宏应用实例
宏变量赋值的种类及方法(三)
• 空格或特殊字符:%let name=%str(ZHOU Runfa); %let relation=%str(Mr Li%’s wife); %let city=%nrstr(Shanghai&Beijing); city=%nrstr(Shanghai&Beijing %let plotgrm=%str( proc plot plot salary*month; run;);
前导文本和末尾文本的合用
• 例如: %let mmm=bought; data new&mmm; (newbought) set save.&mmm; (save.bought) data &mmm.1 &mmm.2;(.表示定界符,绝对不能用mmm1和mmm2) title"&mmm.report"与 "&mmm report"等价
用户定义的宏变量
• 创建自己的宏变量、改变它们的值和定 义它们的作用范围。 • 使用%GLOBAL语句把它定义为一个全局 变量。
创建宏变量及对其赋值
• 定义宏变量并赋值:%LET 宏变量名=宏变量值, 如%let name=shanghai;、 %let city=&name; • 除了循环语句外,其它产生宏变量的宏语言有: 循环语句:%DO;%GLOBAL;%INPUT; %MACRO;%WINDOWS等
自定义输出格式
• 用STYLE选项来实现 STYLE选项用于指定生成RTF文件的不同显 示格式, 如:SASDocPrinter ODS RTF FILE=“E:\ODS\RtfDemo.rtf” style= SASDocPrinter ; FANCYPRINTER
wk.baidu.com 显示宏变量的值
例如: %let x=name; %let y=weight height; %put &x ***&y***; name ***weight height***
间接引用宏变量
例如: %macro listthem; %do n=1 %to 10; &&city&n; %end; %mend listthem; %put % listthem; (Shanghai Beijing Guangzhou Tianjin Chongqing Chengdu Wuhan Kuming Dalian Nanjing)
%MACRO PLOT(yvar,xvar); PROC PLOT; PLOT &yvar*&xvar; &yvar*&xvar RUN; %MEND PLOT; %PLOT(INCOME,AGE);
宏的表达式
SAS宏的表达式有两种: • 算术表达式 操作符 **、+、-、*、/、+、 -、 <、<=、=、^=、>、>= • 逻辑表达式 逻辑操作符 ^、&、|
例2:为宏变量引用产生后缀
%macro namesx(name,number); %do n=1 %to &number; &name.x&n %end; %mend namesx; data %namesx(name=dsn,number=3);
run;
结果:产生DSNX1-DSNX3三个数据集
SAS输出传送系统 (Output Delivery System-ODS)
宏变量赋值的种类及方法(一)
• 恒定文本:%let city=shanghai; • 数字:%let x=100;%let y=100+123; • 数学表达式:%let x=%eval(100+123); 生成223 • 空值:%let name=;
宏变量赋值的种类及方法(二)
• 宏变量引用:%let city=shanghai; %let street=jiefangRD; %let address=&city&street; address=shanghai jiefang RD; • 宏调用:%let city=%cityname; %let city=%nrstr(%cityname);
SAS宏和SAS输出传送系统
2003年10月14日 年 月 日
SAS宏的功能 • 根据自己需要对SAS系统进行扩充和 定义 • 减轻在完成一些相同的统计分析任 务时的文本录入
SAS宏的两种定义符
• &名字-是宏变量的指定标记 • %名字-为指定一段宏的标记 注意:以%开头的SAS语句不是宏功能中的 内容,%INCLUDE、%LIST和%RUN
相关文档
最新文档