
SAS編程之ods和option的常用語句
上周因為一個ods的語句不會寫,所以特地查了obs語句的使用,覺得obs還是挺好用的。
介紹一個sas的輸出分為三種窗口。
1、 日志窗口。
2、 輸出結(jié)果窗口
3、 圖形窗口。
我的sas沒辦法畫圖,這個窗口我就不貼圖了。
Ods語句就是關(guān)于輸出結(jié)果窗口的。接下來我就幾個常用的ods語句介紹一下用法,主要是實現(xiàn)結(jié)果窗口轉(zhuǎn)化成數(shù)據(jù)集或者其他格式。一下是ods參數(shù)的介紹:
Listing 字符文本在output窗口顯示,圖形在graph1窗口顯示
Result 輸出結(jié)果在結(jié)果窗口顯示(沒有寫ods的時候這個功能是默認(rèn)存在的。)
Output把output窗口的顯示內(nèi)容(輸出對象)轉(zhuǎn)換成sas數(shù)據(jù)集。(這個功能最常用。)
Html把output窗口的顯示內(nèi)容(輸出對象)轉(zhuǎn)換成Html數(shù)據(jù)集。
Csvall把output窗口的顯示內(nèi)容(輸出對象)轉(zhuǎn)換成含有逗號的標(biāo)識語言文件。
Rtf把output窗口的顯示內(nèi)容(輸出對象)轉(zhuǎn)換成rtf數(shù)據(jù)集。
Pdf把output窗口的顯示內(nèi)容(輸出對象)轉(zhuǎn)換成pdf數(shù)據(jù)集。
Output窗口就是結(jié)果輸出窗口。
1 結(jié)果輸出窗口的內(nèi)容輸出到sas數(shù)據(jù)集。
這個功能對于我來說簡直就是再生父母啊,因為建模的時候經(jīng)常要寫一個宏循環(huán),宏循壞要通過過程的參數(shù)判斷。
procunivariatedata=sashelp.class ;
varage;
run;
這個過程是比較常用的。比如你要知道一個序列的t檢驗結(jié)果,那你發(fā)現(xiàn)如果輸入以上的代碼的時候其實t檢驗的結(jié)果是在結(jié)果輸出窗口的,你想拿出來用,怎么拿。這時候,你可以把代碼寫成下面這樣子的。大部分proc過程步在data后面都可以接out語句,但是有時候我就覺得我就不知道這個out語句out的是不是我要的東西。
procunivariatedata=sashelp.classouttable=aa;
varage;
run;
如果使用ods可以像以下這么操作。
1、 ods trace on語句.
這個語句的功能就是判斷結(jié)果輸出窗口中的各個小框里面的在轉(zhuǎn)化成數(shù)據(jù)集的時候叫什么名字。輸入以下代碼:
odstraceon;
procunivariatedata=sashelp.classouttable=aa;
varage;
run;
在日志窗口會顯示這樣子:
正常情況下默認(rèn)的是odstraceoff;即這個功能是關(guān)閉,在日志里面是看不到這些??瓷蠄D,假設(shè)你要的是位置檢驗:
就是這個圖的內(nèi)容,那么找到標(biāo)簽是位置檢驗,記下他的名稱或者路徑都可以,寫一下代碼:
odstraceon;
odsoutputTestsForLocation=dd;
procunivariatedata=sashelp.classouttable=aa;
varage;
run;
or
odstraceon;
odsoutputUnivariate.Age.TestsForLocation=dd;
procunivariatedata=sashelp.classouttable=aa;
varage;
run;
都可以把位置檢驗的這個圖輸出到sas數(shù)據(jù)集。所有的過程步都可以這么干的。
以上就是我常用的關(guān)于ods比較常用的兩個功能。其他的關(guān)于ods的可以參考姚志勇的《sas編程與數(shù)據(jù)挖掘商業(yè)案例》的第137頁。
2 將結(jié)果輸出窗口中的內(nèi)容輸出到特定的文件中。
輸入以上這個代碼。在路徑下面就會產(chǎn)生一個html的文件。解析一 下這個程序。
odslistingclose;這里listing其實可有可無,如果頭尾不加listing,只是在結(jié)果輸出窗口哪里也會有結(jié)果而已。所以上面這個代碼主要來介紹一下html,因為輸出的是html文件,所以首先要指定路徑“odshtmlfile="C:\Users\Administrator.53HMKHKEAFZ58WJ\Desktop\data\test.html";”,跑完程序之后要關(guān)掉這個功能,不然你后面有結(jié)果的還是會輸出到html窗口。介紹了了一個html的功能之后,其實后面的pdf csvall rtf都是同樣的套路??聪螺敵龅慕Y(jié)果(有點丑):
2、第二部分就是介紹option.option介紹的是放在過程步前面的。
obs:表示需要處理的最后一行observation,如果指定其為max,就表示處理到最后一條observation。這個用法經(jīng)常在數(shù)據(jù)比較多,前期調(diào)試代碼的時候使用的, 只是調(diào)試代碼,但是不用全量跑,就可以用這個設(shè)置“options obs=1000”,等到調(diào)試完完了之后要改回來“options obs=max”,不然還是跑1000條。
firstobs:表示需要從第幾行observation開始處理,默認(rèn)是從第一條開始。
msglevel:默認(rèn)值是N,僅打印日志中的notes,warnings和error信息,如果設(shè)為I,再打印附屬信息,包括索引的使用,合并處理,排序等附加信息
errors:指定最多有多少錯誤可以在log中顯示,例如“options error=50”;
macrogen:將宏擴展的結(jié)果顯示在日志里面
compress:是否采用壓縮格式存儲數(shù)據(jù)集
missing:指定用于替換missing value的字符,不設(shè)置的時候是“.”,如果這個字符的話貌似是沒有用的,只能針對字符,譬如“options missing=5”那么在數(shù)據(jù)集顯示的null的數(shù)就是用5補充,但是5只是顯示,實質(zhì)上的是觀測還是.。就是你如果要把null變成-0,那么還是if age=. Then age=-0;
replace/noreplace:如果dataset已經(jīng)存在,指定是否覆蓋
print/noprint:指定是否在output窗口輸出,這個在跑循環(huán)的時候很好用,因為一旦是1000各變量都跑一循環(huán),輸出在結(jié)果輸出窗口就會很多,這時候整個sas就會很卡,包括日志也是,當(dāng)你的日志產(chǎn)生是很多的話,建議輸出到外面用proc printto。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA 數(shù)據(jù)分析師報考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動決策的時代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-18剛?cè)肼殘龌蚴窃诼殘稣媾R崗位替代、技能更新、人機協(xié)作等焦慮的打工人,想要找到一條破解職場焦慮和升職瓶頸的系統(tǒng)化學(xué)習(xí)提升 ...
2025-07-182025被稱為“AI元年”,而AI,與數(shù)據(jù)密不可分。網(wǎng)易公司創(chuàng)始人丁磊在《AI思維:從數(shù)據(jù)中創(chuàng)造價值的煉金術(shù) ...
2025-07-18CDA 數(shù)據(jù)分析師:數(shù)據(jù)時代的價值挖掘者 在大數(shù)據(jù)席卷全球的今天,數(shù)據(jù)已成為企業(yè)核心競爭力的重要組成部分。從海量數(shù)據(jù)中提取有 ...
2025-07-18SPSS 賦值后數(shù)據(jù)不顯示?原因排查與解決指南? 在 SPSS( Statistical Package for the Social Sciences)數(shù)據(jù)分析過程中,變量 ...
2025-07-18在 DBeaver 中利用 MySQL 實現(xiàn)表數(shù)據(jù)同步操作指南? ? 在數(shù)據(jù)庫管理工作中,將一張表的數(shù)據(jù)同步到另一張表是常見需求,這有助于 ...
2025-07-18數(shù)據(jù)分析師的技能圖譜:從數(shù)據(jù)到價值的橋梁? 在數(shù)據(jù)驅(qū)動決策的時代,數(shù)據(jù)分析師如同 “數(shù)據(jù)翻譯官”,將冰冷的數(shù)字轉(zhuǎn)化為清晰的 ...
2025-07-17Pandas 寫入指定行數(shù)據(jù):數(shù)據(jù)精細(xì)化管理的核心技能? 在數(shù)據(jù)處理的日常工作中,我們常常需要面對這樣的場景:在龐大的數(shù)據(jù)集里精 ...
2025-07-17解碼 CDA:數(shù)據(jù)時代的通行證? 在數(shù)字化浪潮席卷全球的今天,當(dāng)企業(yè)決策者盯著屏幕上跳動的數(shù)據(jù)曲線尋找增長密碼,當(dāng)科研人員在 ...
2025-07-17CDA 精益業(yè)務(wù)數(shù)據(jù)分析:數(shù)據(jù)驅(qū)動業(yè)務(wù)增長的實戰(zhàn)方法論 在企業(yè)數(shù)字化轉(zhuǎn)型的浪潮中,“數(shù)據(jù)分析” 已從 “加分項” 成為 “必修課 ...
2025-07-16MySQL 中 ADD KEY 與 ADD INDEX 詳解:用法、差異與優(yōu)化實踐 在 MySQL 數(shù)據(jù)庫表結(jié)構(gòu)設(shè)計中,索引是提升查詢性能的核心手段。無論 ...
2025-07-16解析 MySQL Update 語句中 “query end” 狀態(tài):含義、成因與優(yōu)化指南? 在 MySQL 數(shù)據(jù)庫的日常運維與開發(fā)中,開發(fā)者和 DBA 常會 ...
2025-07-16如何考取數(shù)據(jù)分析師證書:以 CDA 為例? ? 在數(shù)字化浪潮席卷各行各業(yè)的當(dāng)下,數(shù)據(jù)分析師已然成為企業(yè)挖掘數(shù)據(jù)價值、驅(qū)動決策的 ...
2025-07-15CDA 精益業(yè)務(wù)數(shù)據(jù)分析:驅(qū)動企業(yè)高效決策的核心引擎? 在數(shù)字經(jīng)濟時代,企業(yè)面臨著前所未有的數(shù)據(jù)洪流,如何從海量數(shù)據(jù)中提取有 ...
2025-07-15MySQL 無外鍵關(guān)聯(lián)表的 JOIN 實戰(zhàn):數(shù)據(jù)整合的靈活之道? 在 MySQL 數(shù)據(jù)庫的日常操作中,我們經(jīng)常會遇到需要整合多張表數(shù)據(jù)的場景 ...
2025-07-15Python Pandas:數(shù)據(jù)科學(xué)的瑞士軍刀? ? 在數(shù)據(jù)驅(qū)動的時代,面對海量、復(fù)雜的數(shù)據(jù),如何高效地進行處理、分析和挖掘成為關(guān)鍵。 ...
2025-07-15用 SQL 生成逆向回滾 SQL:數(shù)據(jù)操作的 “后悔藥” 指南? 在數(shù)據(jù)庫操作中,誤刪數(shù)據(jù)、錯改字段或誤執(zhí)行批量更新等問題時有發(fā)生。 ...
2025-07-14t檢驗與Wilcoxon檢驗的選擇:何時用t.test,何時用wilcox.test? t 檢驗與 Wilcoxon 檢驗的選擇:何時用 t.test,何時用 wilcox. ...
2025-07-14AI 浪潮下的生存與進階: CDA數(shù)據(jù)分析師—開啟新時代職業(yè)生涯的鑰匙(深度研究報告、發(fā)展指導(dǎo)白皮書) 發(fā)布機構(gòu):CDA數(shù)據(jù)科 ...
2025-07-13LSTM 模型輸入長度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長序列 ...
2025-07-11