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:\MyRawData\giant.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:\MyCSVfiles\golfinto.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:\MyHTMLFILES\Marine.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:\MyHTMLFILES\Marine.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:\MyHTMLFILES\Marine.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.