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

熱線電話:13121318867

登錄
首頁精彩閱讀SAS學(xué)習(xí)筆記(2):SAS語言構(gòu)成
SAS學(xué)習(xí)筆記(2):SAS語言構(gòu)成
2015-10-14
收藏

SAS學(xué)習(xí)筆記(2):SAS語言構(gòu)成



  SAS語言程序由數(shù)據(jù)步和過程步組成。數(shù)據(jù)步用來生成數(shù)據(jù)集、計(jì)算、整理數(shù)據(jù),過程步用來對數(shù)據(jù)進(jìn)行分析、報(bào)告。SAS語言的基本單位是語句,每個(gè)SAS語句一般由一個(gè)關(guān)鍵字(如DATA,PROC,INPUT,CARDS,BY)開頭,包含SAS名字、特殊字符、運(yùn)算符等,以分號結(jié)束。

   SAS關(guān)鍵字是用于SAS語句開頭的特殊單詞,SAS語句除了賦值、累加、注釋、空語句以外都以關(guān)鍵字開頭。SAS名字在SAS程序中標(biāo)識各種SAS成分,如變量、數(shù)據(jù)集、數(shù)據(jù)庫,等等。SAS名字由1到8個(gè)字母、數(shù)字、下劃線組成,第一個(gè)字符必須是字母或下劃線。SAS關(guān)鍵字和SAS名字都不分大小寫。

1.1 SAS表達(dá)式

SAS數(shù)據(jù)步程序中的計(jì)算用表達(dá)式完成。表達(dá)式把常量、變量、函數(shù)調(diào)用用運(yùn)算符、括號連接起來得到一個(gè)計(jì)算結(jié)果。

SAS常量主要有數(shù)值型、字符型兩種,并且還提供了用于表達(dá)日期、時(shí)間的數(shù)據(jù)類型。例如

  • 數(shù)值型:1 2,-7.5,2.5E-10
  • 字符型:'Beijing',"Li Ming","李明"
  • 日期型:'13JUL1998'd
  • 時(shí)間型:'14:20't
  • 日期時(shí)間型:' 13JUL1998:14:20:32' dt

SAS中用一個(gè)單獨(dú)的小數(shù)點(diǎn)來表示缺失值常量。

SAS變量的基本類型有兩種:數(shù)值型和字符型。日期、時(shí)間等變量存為數(shù)值型。SAS的數(shù)值型變量可以存儲任意整數(shù)、定點(diǎn)實(shí)數(shù)、浮點(diǎn)實(shí)數(shù),一般不關(guān)心其區(qū)別。數(shù)值型變量在數(shù)據(jù)集中的存貯一般使用8個(gè)字節(jié)。SAS的字符型變量缺省的長度是8個(gè)字符,但是如果在INPUT語句中輸入字符型變量時(shí)指定了長度則不受此限制??梢杂肔ENGTH語句直接指定變量長度,LENGTH語句一般應(yīng)出現(xiàn)在變量定義之前,格式為:

LENGTH 變量名 $ 長度;

例如:length name $ 20;

SAS運(yùn)算符包括算術(shù)、比較、邏輯等運(yùn)算符。

邏輯運(yùn)算符 = ^= > < >= <= IN

EQ NE GT LT GE LE

IN是一個(gè)SAS特有的比較運(yùn)算符,用來檢查某個(gè)變量的取值是否在一個(gè)給定列表中,比如:

prov in ('北京','天津','上海')

邏輯運(yùn)算符: &(AND) l (OR) ^(NOT)

連接兩個(gè)字符串的l l(兩個(gè)連續(xù)的l號)

取兩個(gè)運(yùn)算值中較大一個(gè)的<>(比如3 <>5結(jié)果為5),取兩個(gè)運(yùn)算值中較小一個(gè)的><

1.2 SAS程序規(guī)則

SAS程序由語句構(gòu)成。每個(gè)語句以分號結(jié)尾。因?yàn)榉痔栕鳛檎Z句結(jié)束標(biāo)志,所以SAS語句不需要單獨(dú)占一行,一個(gè)語句可以寫到多行,也可以在一行連續(xù)寫幾個(gè)語句。SAS語言中只要允許用一個(gè)空格的地方就可以加入任意多個(gè)空白f空格、制表符、回

車,允許用空格的地方是名字周圍、運(yùn)算符周圍。

SAS關(guān)鍵字和名字大小寫不分,但字符型數(shù)據(jù)值要區(qū)分大小寫,比如"Beijing"和"BEIJING"被認(rèn)為是不同的數(shù)據(jù)值。

在SAS程序中可以加入注釋,注釋使用C語言語法,用/*和*/在兩端界定注釋,這種注釋可以出現(xiàn)在任何允許加入空格的位置,可以占多行。

SAS程序包括數(shù)據(jù)步和過程步兩種結(jié)構(gòu),每一個(gè)步是一段相對完整的可以單獨(dú)運(yùn)行的程序。數(shù)據(jù)步用來生成、整理數(shù)據(jù)和自編程計(jì)算,過程步調(diào)用SAS己編好的處理過程對數(shù)據(jù)進(jìn)行處理。自己用SAS編程序進(jìn)行計(jì)算主要在數(shù)據(jù)步中進(jìn)行。

SAS數(shù)據(jù)步以DATA語句開頭,以RUN語句結(jié)尾。DATA步中可以使用INPUT,CARDS,INFILE,SET,MERGE等語句指定數(shù)據(jù)來源輸入數(shù)據(jù),也可以用賦值、分支、循環(huán)等編程結(jié)構(gòu)直接生成數(shù)據(jù)或?qū)斎氲臄?shù)據(jù)進(jìn)行修改。


數(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(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) 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){ //倒計(jì)時(shí)完成 $(".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); }