歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

SAS語言入門[共91頁]

  • 資源ID:112995369       資源大?。?span id="psfxkrt" class="font-tahoma">1.11MB        全文頁數(shù):91頁
  • 資源格式: PPT        下載積分:12積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺(tái)登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要12積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

SAS語言入門[共91頁]

上海上海* * *通信技術(shù)有限公司通信技術(shù)有限公司 Jim() 2012-11SASSAS 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)Statistical Analysis System2培訓(xùn)大綱培訓(xùn)大綱SASSAS簡介簡介基本術(shù)語基本術(shù)語SASSAS語法語法函數(shù)函數(shù)宏宏數(shù)據(jù)步數(shù)據(jù)步過程步過程步3 SAS介紹1、什么是SAS:SAS(Statistical Analysis System)是世界上最著名的統(tǒng)計(jì)分析系統(tǒng)之一,具有完備的數(shù)據(jù)訪問、管理、分析和呈現(xiàn)功能,被譽(yù)為國際標(biāo)準(zhǔn)統(tǒng)計(jì)分析系統(tǒng)2、世界上公認(rèn)的三大統(tǒng)計(jì)軟件之一 SAS - Statistical Analysis System SPSS - Statistical Product and Service Solutions S-PLUS44SAS的發(fā)展歷程1966年由美國北卡羅來納州(NorthCarolina)州立大學(xué)開始研制 1976年成立美國SAS軟件研究所,并開始對(duì)SAS系統(tǒng)進(jìn)行維護(hù)、開發(fā)、銷售和培訓(xùn)等工作 1985年推出了SAS/PC(6.02)版本 1989年推出SAS/PC(6.04)版本 1997年下半年推出適用于多種操作系統(tǒng)的6.12版本 2000年2月又正式推出SAS系統(tǒng)8版本 2002年推出全新的SAS9版本SAS公司于1989年在北京成立了辦事處 1997年,SAS軟件研究所正式宣布成立大中國區(qū) 1999年3月在國內(nèi)設(shè)立獨(dú)資公司賽仕軟件(上海)有限公司。5SAS系統(tǒng)界面6顯示管理系統(tǒng) 1、三個(gè)常用窗口:EDITOR 程序編輯窗口F5LOG日志窗口F6OUTPUT輸出窗口F72、菜單: 執(zhí)行各種功能操作3、工具欄:方便執(zhí)行常用功能操作7編寫、運(yùn)行、調(diào)試編寫SAS程序: 在Program Edit 程序編輯窗口輸入源程序 根據(jù)題意編寫程序 例:有一批體檢數(shù)據(jù),包括受檢者的姓名、性別、年齡、身高、體重信息。要求按性別分別計(jì)算身高、體重的描述性統(tǒng)計(jì)量:均值、標(biāo)準(zhǔn)差、最大值、最小值。8編寫、運(yùn)行、調(diào)試姓名性別年齡身高體重ZHANGLINF47156.347.1ZHAOHUAM38172.461.5WANGQANGM41169.264.5LIULIF52158.253.6SHIDONGF39160.148.0KONGYINGM29174.164.6LILINGF37152.342.2GUANFENM32166.260.2MAQIANGM26180.374.3NEWHUAM31178.280.2TANGNEUF35169.260.8GENGJIEM24176.073.3SUNHONGF27158.349.9DONGLINF33162.451.6TONGLINGM34170.458.99DATA A;INPUT NAME $ SEX $ AGE HEIGHT WEIGHT;CARDS;ZHANGLINF47156.347.1ZHAOHUAM38172.461.5WANGQANGM41169.264.5LIULI F52158.253.6SHIDONG F39160.148.0KONGYINGM29174.164.6LILING F37152.342.2GUANFENM32166.260.2MAQIANGM26180.374.3NEWHUA M31178.280.2TANGNEUF35169.260.8GENGJIE M24176.073.3SUNHONGF27158.349.9DONGLINF33162.451.6TONGLINGM34170.458.9;PROC SORT; BY SEX;PROC MEANS; BY SEX;VAR HEIGHT WEIGHT;RUN;10程序說明 數(shù)據(jù)步:將數(shù)據(jù)讀入系統(tǒng),建立數(shù)據(jù)集。以DATA語句開始INPUT語句描述數(shù)據(jù)變量 , 用$表示變量是字符型CARDS語句指示后面是數(shù)據(jù)每行為一個(gè)觀測(cè)數(shù)據(jù),數(shù)據(jù)間無分號(hào)數(shù)據(jù)最后以“;”開頭的空行結(jié)束 過程步:對(duì)數(shù)據(jù)集中數(shù)據(jù)進(jìn)行分析、處理。以PROC語句開始,調(diào)用SAS標(biāo)準(zhǔn)過程每個(gè)語句都以“;”結(jié)束。整個(gè)程序最后要有RUN語句。編寫、運(yùn)行、調(diào)試11 SAS程序的書寫格式: 不分大小寫 單個(gè)名稱中不能空格,不同名稱間必須空格 一行可寫多條語句,用分號(hào)分隔 一條語句可寫多行 數(shù)據(jù)行后不加分號(hào),數(shù)據(jù)最后單獨(dú)加一分號(hào)行 程序用RUN;語句結(jié)束 編寫、運(yùn)行、調(diào)試12查看結(jié)果 激活OUTPUT窗口( F7 ) 注意:沒有正確結(jié)果,可能是: 程序語法錯(cuò)誤: 查看日志窗口錯(cuò)誤信息 程序邏輯錯(cuò)誤: 分析源程序 沒有調(diào)用能輸出結(jié)果的過程查看運(yùn)行過程及出錯(cuò)信息 激活LOG窗口( F6 ) 黑色文字:源程序及運(yùn)行情況 藍(lán)色文字:程序運(yùn)行情況的說明信息 紅色文字:出錯(cuò)信息 綠色文字:警告信息編寫、運(yùn)行、調(diào)試13培訓(xùn)大綱培訓(xùn)大綱SASSAS簡介簡介基本術(shù)語基本術(shù)語SASSAS語法語法函數(shù)函數(shù)宏宏數(shù)據(jù)步數(shù)據(jù)步過程步過程步14數(shù)據(jù)集類型a. 橫截面數(shù)據(jù)集(cross-sectional data set): 即在同一時(shí)間截面上的統(tǒng)計(jì)數(shù)據(jù)。b.時(shí)間序列數(shù)據(jù)集(time series data set):是按時(shí)間順序排列的統(tǒng)計(jì)數(shù)據(jù)。c.混合橫截面數(shù)據(jù)集(pooled cross section data set):有些數(shù)據(jù)既有橫截面數(shù)據(jù)的特點(diǎn)又有時(shí)間序列的特點(diǎn),但每一時(shí)點(diǎn)的樣本不同15數(shù)據(jù)集類型d.綜列數(shù)據(jù)集(panel data set):由橫截面數(shù)據(jù)集中每個(gè)樣本的一個(gè)時(shí)間序列組成。(定點(diǎn)長期調(diào)查)差異:綜列數(shù)據(jù)是調(diào)查經(jīng)歷一段時(shí)間的同樣的橫截面數(shù)據(jù),而混合橫截面數(shù)據(jù)調(diào)查的是不相同的橫截面數(shù)據(jù)。兩者的唯一區(qū)別在于是否個(gè)體發(fā)生改變。面板是個(gè)體一定不能夠發(fā)生變化。其它專門數(shù)據(jù)類型: 1、離散數(shù)據(jù)(discrete data):通常在考察個(gè)人、家庭或企業(yè)的決策行為時(shí),通過問卷調(diào)查獲得,由此發(fā)展出“離散選擇模型”。定量數(shù)據(jù)與定性數(shù)據(jù)2、持續(xù)數(shù)據(jù)(survival data):用于考察變量從開始到結(jié)束或調(diào)查終止前所經(jīng)過的時(shí)間長度,如失業(yè)持續(xù)時(shí)間、罷工持續(xù)時(shí)間,股市牛熊市持續(xù)時(shí)間1616基本術(shù)語名詞術(shù)語1、數(shù)據(jù)集:數(shù)據(jù)的集合,由樣本(行)和變量(列)組成SAS數(shù)據(jù)集樣本(觀測(cè)、記錄)、變量(字段、域)、表(數(shù)據(jù)集)、 數(shù)據(jù)庫變量屬性(名稱、類型、長度、輸入格式、輸出格式、標(biāo)簽)類型:數(shù)字型、字符串型輸入格式:數(shù)據(jù)被SAS讀取的格式輸出格式:數(shù)據(jù)呈現(xiàn)給人們的格式17培訓(xùn)大綱培訓(xùn)大綱SASSAS簡介簡介基本術(shù)語基本術(shù)語SASSAS語法語法函數(shù)函數(shù)宏宏數(shù)據(jù)步數(shù)據(jù)步過程步過程步18SAS程序規(guī)范1、SAS程序由語句語句組成,語句用分號(hào)結(jié)束。2、幾個(gè)SAS語句可以寫在同一行上,但每句要使用分號(hào)3、一個(gè)語句也可以寫成幾行,只要語句中的單詞不被斷開就可以。在一個(gè)語句中各個(gè)單詞之間至少要有一個(gè)空格。4、SAS程序中不區(qū)分大小寫5、用/*注釋的內(nèi)容*/來對(duì)程序進(jìn)行注釋 *; 也用來表示注釋。6、SAS中的變量的命名規(guī)范以字母或下劃線開始,字母不區(qū)分大小寫。后面的字符可以是數(shù)字,字母或下劃線。不能在定義變量中使用系統(tǒng)保留的關(guān)鍵字名稱,最長32個(gè)字符。19SAS語言和語言和SAS程序程序常量常量 數(shù)值變量數(shù)值變量 常用的輸入或輸出格式符號(hào)是:常用的輸入或輸出格式符號(hào)是:w.d 或或 w. w 表示變量表示變量的的字符長度字符長度,d 表示變量表示變量中中小數(shù)小數(shù)的位數(shù)的位數(shù) Height 4.2 age 2.20 2 2字符常量字符常量 字符常量由字符常量由1 1200200個(gè)字符組成。在賦值語句中,個(gè)字符組成。在賦值語句中,字符常量要用定界符單引號(hào)或雙引號(hào)括起來。字符常字符常量要用定界符單引號(hào)或雙引號(hào)括起來。字符常量的缺省值用空格表示。量的缺省值用空格表示。字符變量字符變量 常用的輸入或輸出格式符號(hào)是常用的輸入或輸出格式符號(hào)是 $w. 例如例如 SEX $1.3 3日期、時(shí)間和日期時(shí)間常量日期、時(shí)間和日期時(shí)間常量 該型常量必須用單引號(hào)括起,后續(xù)一個(gè)該型常量必須用單引號(hào)括起,后續(xù)一個(gè)D D(DateDate)、)、T(Time)T(Time)或或DTDT(DateTimeDateTime)表示其類型。)表示其類型。 8JAN1999D 8JAN1999D 表示日期值表示日期值10:45T 10:45T 表示時(shí)間值表示時(shí)間值8JAN99:9:25:14DT 8JAN99:9:25:14DT 表示日期時(shí)間表示日期時(shí)間值值例:例:21日期變量日期變量 常用的輸入或輸出格式符號(hào)常用的輸入或輸出格式符號(hào)是是YYMMDDw. 或或 DDMMYYw. 或或 MMDDYYw. 或或 DATEw. w 表示日期變量中字符的長度表示日期變量中字符的長度 yymmdd8. date8. mmddyy6.SAS的時(shí)間輸出格式的時(shí)間輸出格式 注意,當(dāng)輸出時(shí)間變量時(shí),輸出格式用注意,當(dāng)輸出時(shí)間變量時(shí),輸出格式用yymmdd8. yymmdd8. 或或 date8. date8. 或不用輸出格式,其輸出的結(jié)果形式是完全不一樣的?;虿挥幂敵龈袷剑漭敵龅慕Y(jié)果形式是完全不一樣的。例如,例如,1980120219801202的輸出結(jié)果分別是的輸出結(jié)果分別是80-12-0280-12-02,02DEC80 02DEC80 和和76417641。 對(duì)于日期變量,如果輸出時(shí)不給出輸出格式,那么輸出結(jié)對(duì)于日期變量,如果輸出時(shí)不給出輸出格式,那么輸出結(jié)果是一個(gè)按日排列得到的常數(shù)。果是一個(gè)按日排列得到的常數(shù)。SASSAS系統(tǒng)規(guī)定系統(tǒng)規(guī)定19601960年年1 1月月1 1日等日等于于1 1,然后以此類推。例如,然后以此類推。例如,19591959年年1 1月月1 1日等于日等于-365-365,19791979年年1 1月月1 1日等于常數(shù)日等于常數(shù)69406940。22數(shù)組(array)語句當(dāng)需要用同一種方法處理很多變量時(shí),可以用數(shù)組語句定義這組變量為某個(gè)數(shù)組中的元素。1.顯示下標(biāo)array語句:由一個(gè)數(shù)組名字,在數(shù)組中元素個(gè)數(shù)的說明,及元素列表組成。2.隱含下標(biāo)array語句:由一個(gè)數(shù)組名字、一個(gè)下標(biāo)變量和列表名組成。23顯示下標(biāo)array語句形如:ARRAY array-name subscript 例 array simple3 red green yellow; array x5,3 score1-score15; array c3等價(jià)于array c3 c1-c3 array test3 t1 t2 t3 (90 80 70) 訪問數(shù)組變量:test1=1; 數(shù)組中的變量必須全是數(shù)值型或字符串型 SAS中數(shù)組存儲(chǔ)的是變量,不是數(shù)據(jù)。數(shù)組只在數(shù)據(jù)步(DATA STEP)中有效。數(shù)組的標(biāo)號(hào)從1開始。規(guī)定數(shù)組中每一維的上下界:array x1:5,1:3 score1-score15;*表示SAS系統(tǒng)通過數(shù)組中變量的個(gè)數(shù)來確定下標(biāo)??捎胐im(數(shù)組名)函數(shù)計(jì)算數(shù)組元素個(gè)數(shù)。_temporary_建立一個(gè)臨時(shí)數(shù)組元素列表 array a(3) _temporary_ (11,22,33);24隱含下標(biāo)array語句形如:ARRAY array-name array-elements 如:array x x1-x5DO OVER語句對(duì)隱含下標(biāo)數(shù)組元素執(zhí)行DO組里的語句語句格式: DO OVER array-name; sas語句; END; 其中:選項(xiàng)array-name規(guī)定一個(gè)隱含下標(biāo)數(shù)組。25算術(shù)符號(hào):算術(shù)符號(hào):+加加a + b-減減a - b*乘乘a * b/除除a / b*乘方乘方a*3 (a 的的3 次方)次方)比較算符:比較算符: = 或或 EQ 等于等于 a = b= 或或 NE 不等于不等于 a = b 或或 GT 大于大于 a b= 或或 GE 大于等于大于等于 a = b 或或 LT 小于小于 a b= 或或 LE 小于等于小于等于 a (最小值) (最大值)27運(yùn)算次序在括弧里的表達(dá)式先計(jì)算第一級(jí):* ()前綴 第二級(jí):* /第三級(jí):第四級(jí):|第五級(jí):其余比較算符第六級(jí):第七級(jí):對(duì)于相同優(yōu)先級(jí)的算符,左邊的運(yùn)算先做。但有兩個(gè)例外:1.對(duì)最高優(yōu)先級(jí),右邊的運(yùn)算先做2.當(dāng)兩個(gè)比較算符圍著一個(gè)量時(shí),這個(gè)表達(dá)式看成是有一個(gè)and 出現(xiàn)一樣被計(jì)算。如:12age 20,等價(jià)于:12age & age2028SAS表達(dá)式表達(dá)式SAS表達(dá)式表達(dá)式是指由是指由SAS變量,變量,SAS函數(shù),函數(shù),SAS算算符以及數(shù)學(xué)符號(hào)等連接而成的一個(gè)式子符以及數(shù)學(xué)符號(hào)等連接而成的一個(gè)式子y =x / ( log (y+1)+1 )10 =age = 20SASSAS表達(dá)式是表達(dá)式是SASSAS語言的一種基本元素,語言的一種基本元素,它主要用在建立數(shù)據(jù)集的程序中。它主要用在建立數(shù)據(jù)集的程序中。 29賦值語句和累加語句賦值Variable = expression例:x=a + b;累加 Variable + expression例:if x=5 then n+1;例:n+(-1)累加語句中的變量必須是數(shù)值型變量,初始值為030字符的比較和轉(zhuǎn)換1、按機(jī)器使用的字符排列次序(ASC或Unicode)從左到右被比較。2、兩個(gè)不等長的字符串被比較時(shí),系統(tǒng)在較短的字符串后自動(dòng)添上空格3、數(shù)字型轉(zhuǎn)換為字符型時(shí),轉(zhuǎn)換為BEST12.的輸出格式,不足寬度的在左邊填充空格。31Do語句(循環(huán)語句)DO語句規(guī)定,在DO后面直到出現(xiàn)END語句之前的這些語句作為一個(gè)單元被執(zhí)行。簡單DO語句,常用在if-then/else語句里循環(huán)DO語句,用下標(biāo)變量規(guī)定重復(fù)次數(shù)do i=1 to 10;do i=2 to 8 by 2; do i=1 to k-1,k+1 to n; do i=2,3,4,6; do i=0.1 to 0.9 by 0.1,1 to 10 by 1; do i=Saturday,Sunday; do i=01jan99d to 01jan2000d by 1; 其中i選項(xiàng)定義下標(biāo)變量,用于控制DO組的執(zhí)行方式和重復(fù)次數(shù)。 下標(biāo)標(biāo)量包含在創(chuàng)建的數(shù)據(jù)集中,可以用drop 語句刪除。32Do while當(dāng)條件成立時(shí)重復(fù)執(zhí)行Do組里的語句Do while (expression);括號(hào)里的表達(dá)式在Do組里的語句被執(zhí)行前在循環(huán)的開頭被計(jì)算。如果表達(dá)式是真的,Do組被執(zhí)行 do while(expression); do I=1 to 10 while (xy);Do until語句有條件地執(zhí)行Do組里的語句,在循環(huán)的最后而不是在循環(huán)的開頭計(jì)算表達(dá)式,如果表達(dá)式是真的,Do組就不再被執(zhí)行。Do組里的語句至少執(zhí)行一次。 do until(expression); do I=2 to 20 by 2 until(x/3)y);33Do over語句Do over 語句對(duì)每個(gè)數(shù)組元素自動(dòng)地執(zhí)行Do組中的語句,它等價(jià)于 do i=1 to k;其中i是這個(gè)數(shù)組的下標(biāo)變量,k是數(shù)組元素的個(gè)數(shù)。Do over語句常用在對(duì)隱含下標(biāo)數(shù)組元素執(zhí)行Do組里的語句 array c x1-x3 (11,22,33); do over c; /* 等價(jià)于do _i_=1 to 3 */ c=c+100; end;34Select(when)語句允許SAS去執(zhí)行幾個(gè)語句或者語句組中的一個(gè)。當(dāng)一個(gè)特殊條件為真時(shí),執(zhí)行對(duì)應(yīng)when語句,如果所有when條件均不成立,選擇執(zhí)行otherwise語句,用end結(jié)束 select (id) select ; when (010) id=北京; when (id=010) id=北京; when (011); /* id值不變 */ when (id in (011,012,013) id=上海; when (012,013,014) id=湖北; otherwise id=其它省份; otherwise id=其他省份; end; end;If語句1.形如:IF expression THEN statement; ELSE statement;2.形如:IF variable例:if x then y=x;當(dāng)變量x的值為0和缺失之外的任意值時(shí)表達(dá)式均為真35Return語句告訴SAS系統(tǒng)在data步當(dāng)前這個(gè)位置上停止執(zhí)行語句并在繼續(xù)執(zhí)行之前返回到一個(gè)預(yù)定的位置(通常是data步開頭)當(dāng)return語句使得SAS返回到data步開頭時(shí),SAS首先輸出當(dāng)前觀測(cè)到新數(shù)據(jù)集中。每個(gè)data步都有一個(gè)隱含的return語句作為最后一個(gè)可執(zhí)行的語句在LINK語句的后面,Return語句讓SAS系統(tǒng)立即返回到LINK后面的語句,并繼續(xù)往下執(zhí)行。在FILE語句的選項(xiàng)HEADER=中,RETURN語句讓SAS系統(tǒng)立即返回到開始新頁之前執(zhí)行的最后一個(gè)語句后面的語句,并繼續(xù)執(zhí)行。在DATA步的其它地方,RETURN語句讓SAS系統(tǒng)返回到DATA步開頭。36Return語句data survey; input x y; if x=y then return; put x= y=; datalines; 21 25 20 20 7 17 ;37Goto語句Goto語句告訴SAS系統(tǒng)立即轉(zhuǎn)到Goto語句所指示的那個(gè)語句,并從那個(gè)語句開始執(zhí)行后面的語句。形如:GOTO label;label規(guī)定語句標(biāo)號(hào)來指示Goto的目標(biāo),它必須與go to語句在同一個(gè)data步Return選項(xiàng)規(guī)定返回而不執(zhí)行下面語句語句標(biāo)號(hào):LABEL_Name:satatements;RETAIN: SAS語言對(duì)變量賦初值是用RETAIN語句進(jìn)行聲明的,SAS在讀入原始數(shù)據(jù)時(shí),開始時(shí)所有的變量為缺失值,如果想對(duì)某一個(gè)變量一開始就給予其某個(gè)值,可以用retain語句聲明。 語法格式:retain 變量名 初始值;38Link語句(*)形如link label;立即轉(zhuǎn)到由label語句指示的位置,并從那里開始繼續(xù)執(zhí)行語句直到一個(gè)return語句被執(zhí)行。與goto語句的區(qū)別是:標(biāo)簽內(nèi)的return語句讓SAS立即返回到link語句后面的那個(gè)語句并從那里繼續(xù)執(zhí)行Continue和和leave語句語句Continue語句使得某個(gè)do循環(huán)中當(dāng)前這次循環(huán)過程停止進(jìn)行,并繼續(xù)進(jìn)行下一次循環(huán)過程。語法格式: CONTINUE;Leave語句停止當(dāng)前整個(gè)do組循環(huán)或select組的處理過程,并用跟在do組或select組后面的下一個(gè)語句繼續(xù)執(zhí)行data步語法格式: LEAVE;39Call語句調(diào)用其他子程序call routine (parameter-1 ) 如SAS提供一系列隨機(jī)數(shù)子程序發(fā)布操作系統(tǒng)命令call system (command) 40全程語句Quit, run, endsas :分別為結(jié)束、運(yùn)行SAS語句、關(guān)閉SAS系統(tǒng)Title, footnote:添加標(biāo)題和腳注Filename:對(duì)一個(gè)外部文件定義標(biāo)記Libname:對(duì)一個(gè)SAS數(shù)據(jù)庫定義標(biāo)記Missing語句規(guī)定表示缺失值的字符,通常出現(xiàn)在data語句中,但其作用范圍是全局的。Page語句使得日志跳到新一頁Skip語句使得日志跳過規(guī)定的行數(shù)%include語句從外部文件讀出SAS語句或數(shù)據(jù)行并執(zhí)行41培訓(xùn)大綱培訓(xùn)大綱SASSAS簡介簡介基本術(shù)語基本術(shù)語SASSAS語法語法函數(shù)函數(shù)宏宏數(shù)據(jù)步數(shù)據(jù)步過程步過程步42SAS 函數(shù)一般形式一般形式y(tǒng) = 函數(shù)名函數(shù)名( x 或或 x 的表達(dá)式的表達(dá)式) 這里,這里,y y 是用戶設(shè)定的新變量,是用戶設(shè)定的新變量,x x 是已知的變量是已知的變量。 y = 函數(shù)函數(shù)名名(x1,x2,x3,x4,x5);y = 函數(shù)函數(shù)名名(of x1 x2 x3 x4 x5);y = 函數(shù)函數(shù)名名(of x1-x5)z =sum (of x1-x5 ) 表示的是新變量表示的是新變量 z z 等于等于x1 x1 到到 x5 x5 這五個(gè)變量之和。這五個(gè)變量之和。SasSas函數(shù)自變量的個(gè)數(shù)不能超過函數(shù)自變量的個(gè)數(shù)不能超過3276732767個(gè)個(gè)如果函數(shù)的自變量是表達(dá)式,在函數(shù)被調(diào)用之前,所有表達(dá)式自變量首如果函數(shù)的自變量是表達(dá)式,在函數(shù)被調(diào)用之前,所有表達(dá)式自變量首先計(jì)算。先計(jì)算。當(dāng)函數(shù)有多個(gè)自變量時(shí),必須用當(dāng)函數(shù)有多個(gè)自變量時(shí),必須用, ,分隔開。分隔開。自變量的縮寫方法:函數(shù)名自變量的縮寫方法:函數(shù)名( (of x1 x2 of x1 x2 . Xn. Xn) )數(shù)組元素自變量的縮寫方法:數(shù)組元素自變量的縮寫方法:Array y10 y1-y10;Array y10 y1-y10;X=sum(of yX=sum(of y* *););Z=sum(of y1-y10);Z=sum(of y1-y10);43常用函數(shù)常用函數(shù)字符串函數(shù):字符串函數(shù): substr 截取與替換 scan 查找到的特殊字符處開始分隔字符串 index 查找一個(gè)字符串中第一次出現(xiàn)的某個(gè)字符的位置 length 求字符串的長度 compress 從字符串中移除指定的字符或字符子串 translate 字符串替換 trim 過濾字符串尾部空格 upcase 轉(zhuǎn)換為大寫 lowcase 轉(zhuǎn)換為小寫 tranwrd 對(duì)指定字符串進(jìn)行替換 rank 將首字符轉(zhuǎn)換為ASCII byte 將ASCII轉(zhuǎn)換為字符 repeat 對(duì)指定字符串根據(jù)指定次數(shù)重復(fù)書寫 left 左對(duì)齊字符 reverse 將字符串反轉(zhuǎn)44常用函數(shù)常用函數(shù)數(shù)學(xué)函數(shù)數(shù)學(xué)函數(shù): abs (x) x 的絕對(duì)值的絕對(duì)值sign (x)x 的符號(hào)的符號(hào)int (x)x 的整數(shù)值的整數(shù)值round (x)x 的四舍五入值的四舍五入值sqrt (x)x 的平方根的平方根exp (x)e 的的 x 次冪次冪log (x)x 的自然對(duì)數(shù)值的自然對(duì)數(shù)值log 2 (x)x 的以的以2為底的對(duì)數(shù)值為底的對(duì)數(shù)值log 10 (x) x 的以的以10為底的對(duì)數(shù)值為底的對(duì)數(shù)值 mod mod 取余取余 ceil ceil 取上整取上整 floor floor 取下整取下整45常用函數(shù)常用函數(shù)日期函數(shù)日期函數(shù): year(date) 返回變量返回變量date的年份的年份 weekday(date) 返回變量返回變量date在一周內(nèi)的哪一天在一周內(nèi)的哪一天 day(date) 返回變量date在一月中的日期 month(date) 返回變量date對(duì)應(yīng)的月份 qtr(date) 返回變量date對(duì)應(yīng)的季度 datdif() 返回兩個(gè)日期之間的天數(shù) date() 返回當(dāng)前日期 today() 返回當(dāng)前日期 mdy() 輸入月,日,年,輸出日期 hms() 輸入小時(shí),分,秒,輸出時(shí)間 dhms() 返回日期時(shí)間 intck 返回兩個(gè)日期按指定間隔求出的間隔值SAS系統(tǒng)存貯日期值為1960年1月1日到指定日期之間的天數(shù)SAS存貯時(shí)間值為從午夜開始到指定時(shí)間的秒數(shù)日期時(shí)間值存貯為1960年1月1日午夜到指定日期時(shí)間之間的秒數(shù)46常用函數(shù)常用函數(shù)樣本統(tǒng)計(jì)函數(shù):樣本統(tǒng)計(jì)函數(shù):mean (of x1-xn) x1-xn 的算術(shù)平均值的算術(shù)平均值var (of x1-xn) x1-xn 的方差的方差std (of x1-xn) x1-xn 的標(biāo)準(zhǔn)差的標(biāo)準(zhǔn)差stderr (of x1-xn) x1-xn 的均數(shù)估計(jì)的標(biāo)準(zhǔn)誤差的均數(shù)估計(jì)的標(biāo)準(zhǔn)誤差max (of x1-xn) x1-xn 中的最大值中的最大值min (of x1-xn) x1-xn 中的最小值中的最小值 sum(of x1-xn); x1-xn中的最大值中的最大值 SKEWNESS 計(jì)算偏斜度計(jì)算偏斜度 KURTOSIS 計(jì)算峰度值計(jì)算峰度值 CV 計(jì)算變異系數(shù)計(jì)算變異系數(shù) PDF 計(jì)算分布密度計(jì)算分布密度 CDF 計(jì)算累積分布計(jì)算累積分布 USS 計(jì)算未校正的平方和計(jì)算未校正的平方和 CSS 計(jì)算修正的離差平方和計(jì)算修正的離差平方和 probnorm(1.96) 標(biāo)準(zhǔn)正態(tài)分布隨機(jī)變量小于標(biāo)準(zhǔn)正態(tài)分布隨機(jī)變量小于1.96的概率的概率 tinv(0.95,2) 自由度為的自由度為的t分布的分布的0.95的分位數(shù)的分位數(shù)tinv(0.95,2,3) 自由度為自由度為2,非中心參數(shù)為的非中心參數(shù)為的t分布的分布的0.95分位分位數(shù)數(shù)47SAS函數(shù)隨機(jī)數(shù)函數(shù):SAS系統(tǒng)提供種隨機(jī)數(shù)函數(shù)。rannor (seed)用rannor產(chǎn)生正態(tài)分布隨機(jī)數(shù)normal() 用函數(shù)normal產(chǎn)生正態(tài)分布隨機(jī)數(shù)ranuni (seed)用函數(shù)ranuni產(chǎn)生均勻分布隨機(jī)數(shù) uniform 用函數(shù)uniform產(chǎn)生均勻分布隨機(jī)數(shù)48培訓(xùn)大綱培訓(xùn)大綱SASSAS簡介簡介基本術(shù)語基本術(shù)語SASSAS語法語法函數(shù)函數(shù)宏宏數(shù)據(jù)步數(shù)據(jù)步過程步過程步49SAS宏功能實(shí)現(xiàn)程序的重復(fù)利用,減少文本的輸入量實(shí)現(xiàn)了程序功能的封裝。實(shí)現(xiàn)變量的傳遞獲取SAS系統(tǒng)信息與其它系統(tǒng)的交互不同數(shù)據(jù)步與過程步之間傳遞數(shù)據(jù)與參數(shù)。50SAS宏變量宏變量屬于SAS宏語言,與普通變量的區(qū)別是可以獨(dú)立于DATA步可以在SAS程序中除數(shù)據(jù)行之外的任何地方定義并使用宏變量%let語句定義宏變量并分配一個(gè)值給宏變量(如:%let dsn=3)當(dāng)引用一個(gè)宏變量的值,放&號(hào)在宏變量前使用%str函數(shù)圍住宏變量的值,使得在這個(gè)值內(nèi)部的分號(hào)作為這個(gè)文本的部分,而不是%let語句的結(jié)束使用%put語句在LOG窗口顯示宏變量的值SAS/BASE中的自動(dòng)宏變量,如:sysver, systime(給出SAS程序或會(huì)話開始執(zhí)行的時(shí)間);51SAS系統(tǒng)內(nèi)部自動(dòng)宏變量系統(tǒng)內(nèi)部自動(dòng)宏變量說明_AUTOMATIC_產(chǎn)看所有系統(tǒng)自動(dòng)宏變量SYSDATE查看當(dāng)前日期SYSVER查看SAS當(dāng)前版本SYSLAST查看SAS當(dāng)前最新生成的數(shù)據(jù)集信息SYSTIME查看當(dāng)前系統(tǒng)時(shí)間SYSSCP查看用戶所使用的操作系統(tǒng)SYSDAY查看當(dāng)前星期幾_ALL_查看用戶創(chuàng)建的宏變量_USER_查看用戶定義的宏變量_GLOBAL_查看用戶定義的全局宏變量_LOCAL_查看用戶定義的局部宏變量示例:%PUT &SYSDATE;%PUT _AUTOMATIC_; *比較特殊,沒有使用&52SAS常用宏語句常用宏語句說明%ABORT結(jié)束當(dāng)前宏運(yùn)行,屬于宏定義中的語句%COPY從SAS宏邏輯庫中賦值指定的對(duì)象%GLOBAL創(chuàng)建全局宏變量語句%LOCAL創(chuàng)建局部宏變量語句%LET定義宏變量語句%PUT輸出文本或宏變量信息到日志窗口顯示%IF %THEN %ELSE條件選擇宏語句%DO %UNTIL重復(fù)執(zhí)行語句塊中的宏語句,直到UNTIL后條件為真%DO %WHILEWHILE后條件為真時(shí),重復(fù)執(zhí)行語句塊中的宏語句%DO %TO循環(huán)宏語句%DO %END宏子功能語句%DO %TO 循環(huán)迭代語句53SAS宏函數(shù)常用宏函數(shù)說明%EVAL實(shí)現(xiàn)整數(shù)運(yùn)算%SYSEVALF實(shí)現(xiàn)浮點(diǎn)數(shù)據(jù)運(yùn)算%TRIM過濾文本尾部空格%QTRIM過濾點(diǎn)包含特殊字符文本的尾部空格%LENGTH計(jì)算字符串變量長度%INDEX查找一個(gè)字符串中字符出現(xiàn)的位置%SUBSTR從指定的字符串中提取子串%UPCASE將字符串轉(zhuǎn)換為大寫%QSCAN根據(jù)特殊分隔符查找,并提取子串%SCAN根據(jù)指定分隔符查找,并提取子串%INCLUDE指明包含的外部文件路徑%SYSFUNC宏變量中調(diào)用SAS內(nèi)部函數(shù)或用戶自定義函數(shù)%STR引用含除特殊符號(hào)的固定文本,特殊符號(hào)如:#%&%NSTR引用包含特殊符號(hào)的固定文本54SAS宏用%macro語句開始一個(gè)宏,同時(shí)給出這個(gè)宏的名字。如:%macro dsn;用%mend語句結(jié)束一個(gè)宏,其后給出宏名字。如:%mend dsn;放一個(gè)百分?jǐn)?shù)符號(hào)(%)在宏名字的前面以調(diào)用一個(gè)宏,如%dsn宏參數(shù)被定義在一個(gè)%macro語句的宏名字后括號(hào)內(nèi)的宏變量稱為宏參數(shù),可以直接給出宏參數(shù)的值,也可以在調(diào)用這個(gè)宏時(shí)給出這些參數(shù)的值。對(duì)參數(shù)分配的值只在這個(gè)宏執(zhí)行時(shí)有效,而宏變量從用戶創(chuàng)建直到SAS會(huì)話結(jié)束前都存在55SAS宏過程內(nèi)部執(zhí)行順序SAS宏過程執(zhí)行優(yōu)先順序如下:1)、宏編譯器先編譯宏,運(yùn)行宏語句2)、執(zhí)行SAS過程步語句56培訓(xùn)大綱培訓(xùn)大綱SASSAS簡介簡介基本術(shù)語基本術(shù)語SASSAS語法語法函數(shù)函數(shù)宏宏數(shù)據(jù)步數(shù)據(jù)步過程步過程步57DATA步流程DATA語句標(biāo)志了數(shù)據(jù)步開始,并指定了數(shù)據(jù)步結(jié)束時(shí)要生成的數(shù)據(jù)集名字。每次讀入一行數(shù)據(jù),讀入后執(zhí)行數(shù)據(jù)步中的其它語句,循環(huán)數(shù)據(jù)步讀取整個(gè)數(shù)據(jù)。_N_變量表示DATA步已經(jīng)執(zhí)行的次數(shù)_error_變量值為1時(shí)表示程序出錯(cuò)_infile_變量值為PDV指針指向的當(dāng)前數(shù)據(jù)行。_all_變量值輸出所有變量,包括系統(tǒng)變量_infile_,_error_,_N_。58邏輯庫邏輯庫SASSAS系統(tǒng)把存放系統(tǒng)把存放 SASSAS文件的每一個(gè)文件的每一個(gè)磁盤目錄磁盤目錄看作一個(gè)看作一個(gè)SASSAS數(shù)據(jù)庫數(shù)據(jù)庫,需要指出的是,需要指出的是,SASSAS數(shù)據(jù)庫不是一個(gè)物理實(shí)體,而僅僅是一個(gè)邏數(shù)據(jù)庫不是一個(gè)物理實(shí)體,而僅僅是一個(gè)邏輯概念。輯概念。系統(tǒng)利用數(shù)據(jù)庫對(duì)系統(tǒng)利用數(shù)據(jù)庫對(duì) SASSAS文件進(jìn)行管理,每一個(gè)文件進(jìn)行管理,每一個(gè)SASSAS文件文件定義一個(gè)數(shù)據(jù)邏輯名來代替該文件的目錄路徑,使數(shù)據(jù)庫邏輯名定義一個(gè)數(shù)據(jù)邏輯名來代替該文件的目錄路徑,使數(shù)據(jù)庫邏輯名和目錄路徑聯(lián)系起來,因此,完整的和目錄路徑聯(lián)系起來,因此,完整的SASSAS文件名應(yīng)由兩部分組成:文件名應(yīng)由兩部分組成:數(shù)據(jù)庫邏輯名數(shù)據(jù)庫邏輯名.SAS.SAS文件名文件名 第一級(jí)名字第一級(jí)名字. .第二級(jí)名字第二級(jí)名字 在在LIBNAMELIBNAME窗口中可觀察到各數(shù)據(jù)庫邏輯名及其相應(yīng)的目錄路窗口中可觀察到各數(shù)據(jù)庫邏輯名及其相應(yīng)的目錄路徑。徑。 邏輯庫名:給邏輯庫起的名字,長度不能超過邏輯庫名:給邏輯庫起的名字,長度不能超過8 8B.B. 邏輯庫與數(shù)據(jù)集的關(guān)系:邏輯庫與數(shù)據(jù)集的關(guān)系: 邏輯庫數(shù)據(jù)集work數(shù)據(jù)集存儲(chǔ)到臨時(shí)邏輯庫,退出SAS系統(tǒng),數(shù)據(jù)集消失永久邏輯庫數(shù)據(jù)集永久存儲(chǔ)到邏輯庫對(duì)應(yīng)的物理路徑59DATA步流程讀外部數(shù)據(jù)時(shí),數(shù)據(jù)步迭代(即每一次)的開始把變量的值置為缺失值,有幾種情況例外:1、retain語句提到的變量2、sum語句中創(chuàng)建的變量3、數(shù)組_temporary_中的數(shù)據(jù)元4、file和infile語句選項(xiàng)中創(chuàng)建的變量5、自動(dòng)變量讀sas數(shù)據(jù)集時(shí),只在第一次迭代時(shí)把變量值置為缺失,以后變量保留其值直至新值寫入60DATA語句數(shù)據(jù)集名字:1、data語句后無數(shù)據(jù)集名字,則自動(dòng)生成 data1, data2等為數(shù)據(jù)集名字,相當(dāng)于data _data_;2、data _null_;不產(chǎn)生實(shí)際的數(shù)據(jù)集,只是把內(nèi)容暫存于內(nèi)存,以供put語句等讀取結(jié)果,可以節(jié)約計(jì)算機(jī)資源3、data _last_;以最近產(chǎn)生的數(shù)據(jù)集命名并取代其內(nèi)容。示例: libname orcl oracle user=doms password=doms2_2009 path=doms libname dz /oracle/test61Infile語句Delimiter (DLM)選項(xiàng):規(guī)定一個(gè)字符替代空格作為分隔符。Firstobs選項(xiàng) :從文件的第Firstobs個(gè)記錄開始讀取記錄Obs選項(xiàng):規(guī)定用戶想從輸入文件中連續(xù)讀取的最后一個(gè)記錄號(hào)DSD選項(xiàng):1、使最外層引號(hào)括起的內(nèi)容當(dāng)成整個(gè)字符串輸入,并去除最外層引號(hào)2、默認(rèn)分隔符為逗號(hào)3、兩個(gè)相鄰的分隔符意味著前一個(gè)分隔符后的字段為缺失值62Infile語句比較INFILE選項(xiàng):FLOWOVER,MISSOVER,TRUNCOVER,STOPOVER差異差異列輸入: DATA test1; /*column input*/ INFILE d:infileemplist.dat; INPUT lastn $1-21 Firstn $ 22-31 Empid $32-36 Jobcode $37-45; RUN; 列表輸入: DATA test2; /*list input*/ INFILE d:infileemplist.dat; INPUT lastn $ Firstn $ Empid $ Jobcode $ ; RUN;文本文檔63Infile語句列輸入:列輸入:flowover列表輸入:列表輸入:flowover當(dāng)行末尾數(shù)據(jù)寬度少于規(guī)定寬度時(shí)Flowover: 默認(rèn)選項(xiàng)。在列輸入時(shí),如果input指針到了一行的最后一個(gè)字符時(shí),有些變量還是沒有得到值或者完整的值,指針就會(huì)跳到下一行的第一列開始讀取數(shù)據(jù),來填充沒有值的變量。當(dāng)下次input語句執(zhí)行的時(shí)候,新的一行數(shù)據(jù)就會(huì)進(jìn)入inputbuffer。64Infile語句當(dāng)行末尾數(shù)據(jù)寬度少于規(guī)定寬度時(shí)Missover:它會(huì)抑制掉flowover選項(xiàng),使得在讀取短的數(shù)據(jù)行時(shí),input指針不會(huì)跳到下一行來讀取數(shù)據(jù),相反,它使得沒有數(shù)據(jù)的變量變?nèi)笔?。將下一個(gè)變量置為缺失,繼續(xù)下一個(gè)數(shù)據(jù)步循環(huán)。列表輸入:列表輸入:Missover列輸入:列輸入:Missover65Infile語句當(dāng)行末尾數(shù)據(jù)寬度少于規(guī)定寬度時(shí)Truncover:將數(shù)據(jù)直接讀入,不管寬度是否少于規(guī)定寬度。其實(shí)truncover的功能相當(dāng)于missover和pad合用的效果,它是針對(duì)列輸入時(shí),如果一行最后讀入的數(shù)值仍然不能滿足變量需要的長度,不會(huì)將變量缺失,而是將讀入的值賦給變量。列表輸入:列表輸入:truncover列輸入:列輸入:truncover66Infile語句Stopover:系統(tǒng)終止數(shù)據(jù)步執(zhí)行,報(bào)告出錯(cuò)Lrecl=n選項(xiàng):設(shè)定源數(shù)據(jù)文件行的物理長度,缺省為256,最大可設(shè)為32767Pad | Nopad選項(xiàng):pad選項(xiàng)指當(dāng)寬度少于規(guī)定寬度時(shí),在后面填充空格至Lrecl=n規(guī)定的行長度,缺省為nopad 關(guān)于pad,顧名思義,意思是將數(shù)據(jù)行的后面部分填上空格,這樣就使得數(shù)據(jù)行變長,空格的長度由lrecl=n決定,默認(rèn)n為256,當(dāng)然可以在infile選項(xiàng)中修改n的大小。這就是為什么在列輸入中用missover和pad可以正確讀取數(shù)據(jù)了,因?yàn)閿?shù)據(jù)行的長度不再是數(shù)據(jù)實(shí)際的長度(可變長度),而是一個(gè)固定長度256,后面都是空格。如果列表輸入只加pad,不加missover,結(jié)果如下,Pad不會(huì)抑制flowover,并且將多個(gè)空格作為一個(gè)處理,所以出現(xiàn)了下面的情況:列輸入:列輸入:missoverpad67Input語句分組格式:input (g1-g5) (3*7.2 , 2*5.2); input (a b) ( $5.)input (a b) ($ , 5.)無需分行而按變量連貫讀數(shù)據(jù) 固定該數(shù)據(jù)行;用于需要多個(gè)input語句同時(shí)讀取一行數(shù)據(jù)。利用n #n 進(jìn)行指針控制INPUT語句讀入的字符變量默認(rèn)長度為8個(gè)字節(jié),超過8字節(jié)就要使用LENGTH語句先定義變量并指明其長度。幾個(gè)特殊符號(hào)的用法(: & ): 讀值時(shí)第一次遇到分隔符 或是數(shù)據(jù)行末尾 或是讀滿列數(shù)而結(jié)束 字符型輸入值可以嵌有一個(gè)或幾個(gè)空格 字符型輸入值保留引號(hào)(與infile 語句中選項(xiàng)dsd一起使用才有效)68Put 語句Put語句負(fù)責(zé)在log窗口輸出一些結(jié)果,file print選項(xiàng)可把輸出轉(zhuǎn)移到output窗口Put _infile_ (輸出最新的數(shù)據(jù)行到SAS log 窗口)Put _all_ (輸出所有變量的值)Put _page_ (輸出新頁)69指針控制讀取列指針控制符 語法格式:n 示例:input 1 bh $3. 4 prov $17. 列控制符號(hào) 語法格式:n1-n2 n1:列開始位置,正整數(shù)值 n2:列結(jié)束位置,正整數(shù)值 示例:input bh $ 1-3 prov $4-2070單個(gè) INPUT語句中單個(gè)“”行控制符號(hào),可以讓指針控制在當(dāng)前行,當(dāng)遇到下個(gè)INPUT時(shí)行指針才移動(dòng)。data a1 a2;infile cards;input ;do; input x $ y $ z$; output a1;end;do; input x11 $ y11 $ z11 $; output a2;end;cards;1 3 43 4 5 6 7 811 23 56;proc print data=a1;run;proc print data=a2;run;71INPUT語句中在讀取數(shù)據(jù)文件或數(shù)據(jù)塊中的數(shù)據(jù)時(shí)多條觀測(cè)記錄寫在一行時(shí),為控制列中每個(gè)列對(duì)應(yīng)數(shù)據(jù)到相應(yīng)的列,行控制符“”起到按記錄條數(shù)分隔數(shù)據(jù)的作用,并按對(duì)應(yīng)列讀取數(shù)據(jù)。FILENAME INPUT和FILENAME一起運(yùn)用,讀取外部文件。FILENAME起到定義外部文件邏輯路徑名的作用。LENGTH SAS語言對(duì)定義的變量有個(gè)默認(rèn)大小,默認(rèn)變量的長度為8個(gè)字節(jié),超過8字節(jié)長度的變量,要先用LENGTH語句來定義變量,并指定長度。 語法格式:LENGTH 變量名 變量長度; LENGTH語句與INPUT語句一起作用時(shí)必須把LENGTH語句放在INPUT語句前面,INPUT語句引用LENGTH語句中定義的變量不需要再定義,直接引用變量名即可。72Cards語句Cards語句與datalines語句可以通用如果輸入數(shù)據(jù)中含有分號(hào),可用cards4語句或datalines4語句,同時(shí),數(shù)據(jù)結(jié)尾用4個(gè)分號(hào)表示數(shù)據(jù)輸入結(jié)束73Output語句DATA步的每次迭代,后臺(tái)自動(dòng)使用output語句,但如果程序中主動(dòng)加上output語句,即相當(dāng)于取消自動(dòng)output語句,變成在條件符合時(shí)輸出。用到output語句其他情況: 1.從一個(gè)輸入的數(shù)據(jù)文件中,創(chuàng)建幾個(gè)SAS數(shù)據(jù)集2.從輸入的每個(gè)數(shù)據(jù)行中,創(chuàng)建二個(gè)或更多個(gè)觀測(cè)3.把幾個(gè)輸入觀測(cè)組合并成為一個(gè)觀測(cè)后面接名字表示輸出到指定數(shù)據(jù)集,但名字必須也在DATA后出現(xiàn)74Set語句使用set語句復(fù)制數(shù)據(jù)集 Point選項(xiàng)指明要讀入的記錄序號(hào)set 數(shù)據(jù)集 point=指針變量;可用于抽樣,一般與output語句連用 Nobs選項(xiàng)創(chuàng)建一個(gè)臨時(shí)變量用來存儲(chǔ)數(shù)據(jù)集的觀測(cè)總數(shù)Set語句可以串接多個(gè)數(shù)據(jù)集,形式如下 Data 數(shù)據(jù)集; set 數(shù)據(jù)集A 數(shù)據(jù)集B ; Run;75By 語句在DATA步中,SAS系統(tǒng)對(duì)每個(gè)BY組創(chuàng)建兩個(gè)臨時(shí)變量:First .variableLast .variable它們用來區(qū)別每個(gè)BY組的第一個(gè)和最后一個(gè)觀測(cè)Rename選項(xiàng)負(fù)責(zé)改名 data test (rename=(oldcolname=mewcolname);76Merge語句使用Merge語句并接多個(gè)數(shù)據(jù)集 Data 數(shù)據(jù)集;merge 數(shù)據(jù)集1 數(shù)據(jù)集2 ;by 變量;run;Update 語句Update語句用一個(gè)升級(jí)數(shù)據(jù)集中的觀測(cè)來修改一個(gè)主數(shù)據(jù)集。Update語句一定要與BY語句一起使用,BY語句給出了合并觀測(cè)時(shí)共同變量的名字主數(shù)據(jù)集中的共同變量必須是單值的,即不能有兩個(gè)或兩個(gè)以上的觀測(cè)其共同變量值相同語法: update 主數(shù)據(jù)集 副數(shù)據(jù)集 ; BY 變量名;77Informat語句Informat語句把輸入格式與變量聯(lián)系起來,在data步,可以用informat語句對(duì)input語句中列出的變量規(guī)定缺省時(shí)的輸入格式Format語句在data步把變量同輸出格式聯(lián)系起來可以規(guī)定缺省選項(xiàng),如:format default=8.2;78Drop和keep語句Drop語句:刪掉變量語句drop variable-listKeep語句:保留變量語句keep variable-list雖然出現(xiàn)在drop和keep語句中的變量不包含在正被創(chuàng)建的SAS數(shù)據(jù)集中,但這些變量仍可以用在程序語句中Drop和keep不能同時(shí)使用79Delete和lostcard(*)語句刪除數(shù)據(jù)集中的觀測(cè)記錄,可以清空數(shù)據(jù)集。當(dāng)SAS系統(tǒng)遇到用幾個(gè)記錄表示一個(gè)觀測(cè)的時(shí)候,數(shù)據(jù)中有丟失記錄時(shí),使用Lostcard語句來重新對(duì)準(zhǔn)輸入數(shù)據(jù)data inspect; input id 1-3 age 8-9 #2 id2 1-3 loc #3 id3 1-3 wt; if id ne id2 or id ne id3 then do; put DATA RECORD ERROR: id= id2= id3=; lostcard; end; datalines;301 32301 61432301 127302 61302 83171400 46409 23145400 197411 53411 99551411 139;80Stop和abort語句用stop語句來停止處理data步,正被處理的那個(gè)觀測(cè)沒有添加到SAS數(shù)據(jù)集中,stop語句不影響后面的任意data步或proc步的執(zhí)行用abort語句來中止SAS系統(tǒng)執(zhí)行當(dāng)前DATA步,return選項(xiàng)關(guān)閉SAS并返回操作系統(tǒng)。Stop與abort的區(qū)別在于abort語句置_error_變量為181Where 語句從已存在的SAS數(shù)據(jù)集選擇子集,在把觀測(cè)讀入之前要求數(shù)據(jù)必須滿足一個(gè)條件Where 語句與if語句相比在讀取數(shù)據(jù)時(shí)更為高效,因其在移動(dòng)所有觀測(cè)到子集之前先選擇數(shù)據(jù)。Where語句豐富的表達(dá)式82Retain語句使用retain給變量賦予初值,并保留到讀下一個(gè)觀測(cè)retain month1-month5 1retain var1-var4 (1,2,3,4)當(dāng)retain后無變量時(shí),用input或賦值語句創(chuàng)建的所有變量的值,保留上次data步執(zhí)行的值83Attrib語句在data步內(nèi)允許用一個(gè)attrib語句來規(guī)定一個(gè)或幾個(gè)變量的輸出、輸入格式,標(biāo)簽和長度,即規(guī)定變量屬性Attrib x label=中國載人飛船 length=4 informat=8.5 format=8.2;84培訓(xùn)大綱培訓(xùn)大綱SASSAS簡介簡介基本術(shù)語基本術(shù)語SASSAS語法語法函數(shù)函數(shù)宏宏數(shù)據(jù)步數(shù)據(jù)步過程步過程步85Proc步的通用語句Proc 用在proc步的開頭并規(guī)定用戶使用的SAS過程名字及其他信息Var規(guī)定用這個(gè)過程分析的一些變量Model規(guī)定在模型中類似表示因變量(左)和自變量(右)的這樣一些變量及其他信息Weight規(guī)定一個(gè)變量,它的值是這些觀測(cè)的相應(yīng)權(quán)數(shù)Freq規(guī)定一個(gè)變量,其值表示頻數(shù)Id規(guī)定一個(gè)或幾個(gè)變量,他們的值在打印輸出中或由此過程產(chǎn)生的SAS數(shù)據(jù)集中用來識(shí)別觀測(cè)Where在SAS把觀測(cè)引入proc步之前,用來選擇符合特殊條件的觀測(cè)Class在分析中指定一些變量為分類變量By規(guī)定一些變量,SAS過程對(duì)輸入數(shù)據(jù)集用by變量定義的幾個(gè)數(shù)據(jù)組分別進(jìn)行分析處理Output給出用該過程產(chǎn)生的輸出數(shù)據(jù)集的信息Quit結(jié)束交互式的過程其他如Attrib屬性語句、format輸出格式語句、label標(biāo)簽語句等86Means均值過程計(jì)算數(shù)據(jù)集中數(shù)值變量的簡單統(tǒng)計(jì)量T選項(xiàng):檢驗(yàn)數(shù)據(jù)總體均值為0的假設(shè)時(shí),t統(tǒng)計(jì)量的值Prt選項(xiàng):Prob |T| , 數(shù)據(jù)總體均值為0的概率是多少默認(rèn)生成的_type_和_freq_變量分別規(guī)定分組數(shù)(如果有)和頻率Maxdec選項(xiàng)規(guī)定輸出結(jié)果的小數(shù)部分最大位數(shù)可以輸出的統(tǒng)計(jì)量:N, Nmiss, mean, std, min, max, range, sum, var, uss, css, cv(變異系數(shù)), stderr, t, prt, sumwgt, skewness(偏度), kurtosis(峰度), clm(置信限), lclm(置信下限), uclm(置信上限)87SQL過程SQL 結(jié)構(gòu)查詢語言(Structured Query Language) 是一個(gè)標(biāo)準(zhǔn)化的廣泛使用的語言,可以檢索和更新關(guān)系表格和數(shù)據(jù)庫中的數(shù)據(jù)。關(guān)系,類似于數(shù)學(xué)中的集合概念,實(shí)際上被表現(xiàn)為一些排列成行和列的二維表格(關(guān)系數(shù)據(jù)庫)SQL語句的特征:子句內(nèi)的項(xiàng)用逗號(hào)分開;不需規(guī)定Run語句;88SQL過程Select語句用來檢索和操作存于表中的數(shù)據(jù)。(order從句,format選項(xiàng))Create語句生成表格Update語句增加或修改在表格的列里的數(shù)值,Insert和Delete語句插入和刪除行,用Alter語句增加、修改、刪去列來修改表格。Delete語句從表中刪去where表達(dá)式為真的所有行Insert to往一個(gè)新的或已存在的表中加入新的行89Transpose(轉(zhuǎn)置過程)Transpose過程完成對(duì)sas數(shù)據(jù)集的轉(zhuǎn)置,即把觀測(cè)變?yōu)樽兞浚兞孔優(yōu)橛^測(cè)。Format過程使用Format過程把輸出格式同Data步、Proc步的變量聯(lián)系起來。Plot過程對(duì)數(shù)據(jù)集中任兩個(gè)變量的n個(gè)觀測(cè)值畫出散點(diǎn)圖,第一個(gè)變量表示y軸,第二個(gè)表示為x軸Standard標(biāo)準(zhǔn)化過程目的是使不同量綱的變量能互相比較90Corr過程計(jì)算變量間的相關(guān)系數(shù)Compare過程該過程用來比較兩個(gè)SAS數(shù)據(jù)集中的內(nèi)容Datasets數(shù)據(jù)庫管理過程該過程用來對(duì)SAS數(shù)據(jù)庫中的SAS文件進(jìn)行列表、拷貝、更名,添加和刪除等操作91推薦教材

注意事項(xiàng)

本文(SAS語言入門[共91頁])為本站會(huì)員(1528****253)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!