99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀SAS編程之ods和option的常用語句
SAS編程之ods和option的常用語句
2017-06-26
收藏

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

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }