ODS(Output Delivery System):
由于所有的过程输出前都会进入ODS,因此用户可利用ODS过程通过选择合适的destination来输出数据。
一、ODS的基本性质
- ODS输出格式:LISTING(默认的标准SAS输出)、HTML、RTF、PRTNTER、PS、PCL、PDF、OUTPUT(SAS OUTPUT Date-set)、MARKUP、DOCUMENT;
- ODS内有table template(指定输出结构)和style template(指定外观结构):首先通过table template作用从procedure中产生数据,形成output project,然后经过style template作用送到destination加工,形成最终的OUTPUT。当然,用户可以通过PROC TEMPLATE建立自定义table template(指定输出结构)和style template(指定外观结构):
1 PROC TEMPLATE; 2 LIST STYLES; 3 RUN;
- 控制外观的style template:
1 /*Built-in style template:*/ 2 ANALYSIS 3 D3D 4 MINIMAL 5 SASWEB 6 BARETTSBLUE 7 DEFAULT /*HTML OUTPUT的默认style*/ 8 PRINTER /*既是destination也是style名,还是PRINTER OUTPUT的默认style*/ 9 SANSPRINTER 10 BRICK 11 JOURNAL 12 RTF /*既是destination也是style名,还是RTF OUTPUT的默认style*/ 13 STATSTICAL 14 15 备注:在PRINT、REPORT、TABULATE过程中,可用STYLE=选项来控制输出的外观,从而不需要再用一个新的style template.
二、ODS OUTPUT
1 ODS OUTPUT的一般形式: 2 ODS OUTPUT output-object=new-data-set; 3 /*output-object:想要保存的那部分output的name、label或路径; 4 new-data-set:想要建立的SAS数据集的名字*/ 5 6 DATA Giant; 7 INFILE 'C:MyRawDatagiant.dat'; 8 INPUT NAME :$ 15. color $ days weight; 9 PROC TABULATE DATA=giant; 10 CLASS color; 11 VAR days weight; 12 TABLE Color ALL,(Days Weight)*MEAN; 13 TITLE; 14 ODS OUTPUT TABLE=tabout; 15 RUN;
三、ODS CSV
1 *CSV文件:用逗号隔开,数值用双引号括起来,双引号内允许有空格; 2 ODS CSV FILE='C:MyCSVfilesgolfinto.csv'; 3 PROC PRINT DATA=travel.golf; 4 TITLE 'Golf course Information'; 5 RUN; 6 ODS CSV CLOSE; 7 8 【备注】: 9 PROC PRINT过程默认将缺失的数值型数据打印出.(period),但是若用户不需要,则可通过指派MISSING=''系统选项来实现。
四、ODS HTML
生成HTML文件,用户只需要两个语句:一个打开HTML文件,一个关闭:
1 *Create the HTML files and remove procedure name; 2 ODS HTML FILE='C:MyHTMLFILESMarine.html'; 3 /*一般形式:----------Body-filename.html----------options--*/ 4 ODS NOPROCTITLE;/*删除输出中的标题*/ 5 DATA Marine; 6 /*省略读入数据步骤*/ 7 PROC MEANS DATA=marine MEAN MIN MAX; 8 CLASS FAMILY; 9 TITLE ’WAHLES AND SHARKS‘; 10 RUN; 11 PROC PRINT DATA=Marine; 12 RUN; 13 *CLOSE the HTML files; 14 ODS HTML CLOSE; 15 16 【常用的options】 17 1.CONTENTS='filename': 创建一个连接到body file的table of contents; 18 2. PAGE=’filename‘:创建一个link by 页码接到body file的table of contents; 19 3.FRAME='filename':创建一个frame使得用户可同时查看body file 和目录或者page file; 20 4.STYLE=style-name:指定特定的style template,默认是DEFAULT.
【备注】:若不需要任何stying,则用CHTML OUTPUT destination代替HTML.
(CHTML:Compact HTML)
四、ODS RTF(可用于复制进入WORD文档)
*Create the RTF files ; 2 ODS RTF FILE='C:MyHTMLFILESMarine.rtf' BODYTITLE COLUMNS=2; 3 /*一般形式:----------Body-filename.rtf----------options--*/ 4 ODS NOPROCTITLE;/*删除输出中的标题*/ (中间部分铜ODS HTML过程) 13 *CLOSE the RTF files; 14 ODS RTF CLOSE; 15 16 【常用的options】 1.BODYTITLE: 在RTF文件的主要部分放入titles和footnotes,而不是WORD里面的headers或footnotes; 2.COLUMNS=n:分栏输出,n为列数; 3.SASDATE:默认情况下,RTF输出的顶部日期和实践表示上次打开或打印成WORD的时间,加上此选项命令SAS使用当前时间; 3.STARTPAGE=value:控制page breaks,默认值为YES,在PROC之间插入breaks;若为NO,则关闭breaks;若为NOW,则在那一刻插入break. 4.STYLE=style-name:指定特定的style template,默认是RTF.
五、ODS PRINTER/PCL/PDF/PS
1 *Create the PDF files ; 2 ODS PDF FILE='C:MyHTMLFILESMarine.pdf' STARTPAGE=NO; 3 ODS NOPROCTITLE; 4 DATA Marine; 5 /*省略读入数据步骤*/ 9 RUN; 10 PROC PRINT DATA=Marine; 11 RUN; 12 *CLOSE the PDF files; 13 ODS PDF CLOSE; 【OPTIONS】 1. COLUMNS=n :分n栏输出 2. STARTPAGE=VALUE: 同RTF; 3.STYLE:默认是PRINTER.