【SAS BASE】ODS OUTPUT

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.
原文地址:https://www.cnblogs.com/chenyn68/p/3866796.html