第五章 用ODS增強你的輸出結(jié)果
5.1 ODC(Output Delivery System)的概念
過程步不會產(chǎn)生輸出,它只會產(chǎn)生數(shù)據(jù)灭袁,然后把數(shù)據(jù)發(fā)送給ODC涤浇,以決定輸出的樣式等。所以片挂,不要考慮是否使用ODC讥脐,而考慮怎么使用岖免。
ODC就像一家商務(wù)飛機赢赊,游客乘坐car和bus趕來玩讳,在機場確認行李熏纯、安檢、最終登機丙唧,飛往目的地闺骚。Ods中,數(shù)據(jù)就想游客甜奄,通過各種過程步而來柠横,ODS處理每一個數(shù)據(jù)集并發(fā)送到目的地。實際上课兄,不同的ODS類型就是目的地牍氛,當達到目的地時,而數(shù)據(jù)的樣式是由模板決定烟阐。
目的地 如果沒有指定目的地搬俊,那么你的數(shù)據(jù)默認發(fā)往“列表listing”紊扬,這里有幾種可選的目的地
LISTING 標準SAS輸出
Output SAS輸出數(shù)據(jù)集
Html 超文本標記語言
RTF 富文本格式
PRINTER high resolution printer output
PS 附言
PCT Printer Control Language
PDF、MARKUP唉擂、DOCUMENT
DOCUMENT目的地计寇,允許創(chuàng)建一個可重復使用的輸出吃环。
風格和表模板 模板描述ODS如何制定數(shù)據(jù)格式并呈現(xiàn)數(shù)據(jù)著榴。最普通的兩個模板類型和是表模板類型和風格模板類型饲嗽。表模板類型制定基本的輸出結(jié)構(gòu)驻谆,而風格模板類型制定輸出將如何呈現(xiàn)卵凑。ODS將過程產(chǎn)生的數(shù)據(jù)和和表模板結(jié)合成輸出對象,輸出對象接著與風格模板結(jié)合胜臊,并發(fā)送到目的地勺卢,創(chuàng)建出輸出。
可以使用template過程創(chuàng)建自己的風格模板象对,但proc template過程晦澀難懂黑忱。幸運的是,有一個最簡單和最快速的方法控制修改輸出勒魔,即使用內(nèi)置風格模板甫煞。可用proc template語句來訪問內(nèi)置模板:
PROC TEMPLATE;
LIST STYLES;
RUN;
一些內(nèi)置模板如下:
注意RTF和PRINTER既是目的地名又是風格名冠绢。DEFAULT是HTML的默認風格抚吠,RTF是RTF輸出的默認風格,PRINTER是PRINTER的默認風格弟胀。 Print楷力、report、TABULATE三個過程中孵户,可以使用style=option來直接控制輸出特征萧朝,而不需要創(chuàng)建一個新的模板。
5.2 追蹤選擇過程的輸出
當ODS接受來自過程的的數(shù)據(jù)時夏哭,它將數(shù)據(jù)與表模板結(jié)合检柬。對應(yīng)的表模板和數(shù)據(jù)就叫做輸出對象。如果使用by語句竖配,SAS會為每一個BY組產(chǎn)生一個輸出對象何址。每一個輸出對象都有名字,可以用ODS TRACE語句來查找械念,并用ODS SELECT語句來選擇头朱。
ODS TRACE語句 ODS TRACE語句告訴SAS打印出SAS日志中輸出對象的信息。這里有兩個ODS TRACE的語句龄减,一個是打開trace项钮,一個是關(guān)閉。使用方法實例如下:
注意關(guān)閉語句要在run后面,否則在程序運行之前就關(guān)閉了trace烁巫。
例子 有關(guān)于番茄種類的數(shù)據(jù)署隘,包括每種番茄的名字、顏色亚隙、從播種到收獲的天數(shù)磁餐、典型重量:
下面代碼創(chuàng)建了一個名為giant的數(shù)據(jù)集,并使用ODS TRACE ON和ODS TRACE off語句來追蹤proc means過程阿弃。
程序運行后诊霹,日志窗口中就會有如下的追蹤(由于使用了BY語句,故按照BY的組來追蹤):
ODS select語句 知道輸出對象的名字之后渣淳,可以用ODS SELECT語句來選擇需要的輸出對象脾还。基本形式為:
Output-object-list是名字入愧、標簽鄙漏、一個或更多的餓輸出對象的路徑。 例子 下面代碼對giant運行了proc means棺蛛,并用ODS SELECT語句選擇了第一個輸出對象怔蚌,mean:
輸出結(jié)果為: