第1章SAS系統(tǒng)簡(jiǎn)介
§1.1 SAS發(fā)展概況 SAS(Statistical Analysis System)是一個(gè)大型的數(shù)據(jù)管理與數(shù)據(jù)統(tǒng)計(jì)分析處理的軟件包。1966年由美國(guó)North Carolina州立大學(xué)開始研制,1976年在美國(guó)成立了SAS研究所。 SAS主要用于數(shù)據(jù)處理和統(tǒng)計(jì)分析領(lǐng)域,是一個(gè)功能齊全、使用方便靈活。只須要有少量的、簡(jiǎn)單的語句、寫出SAS程序,進(jìn)行運(yùn)行,就可以滿足擁護(hù)要求,一些特殊的計(jì)算或處理方式可以通過選項(xiàng)來指定。從而達(dá)到且讓用戶將SAS程序在SAS環(huán)境下提高運(yùn)行,及時(shí)了解到程序運(yùn)行情況及出現(xiàn)的錯(cuò)誤,程序可以方便的編輯修改和運(yùn)行,直到用戶得出滿意的計(jì)算結(jié)果。 目前,SAS已經(jīng)發(fā)展成為一個(gè)功能齊全、應(yīng)用范圍廣泛、使用靈活方便的數(shù)據(jù)庫(kù)管理和數(shù)據(jù)分析的標(biāo)準(zhǔn)軟件系統(tǒng)。其統(tǒng)計(jì)分析部分,在數(shù)據(jù)處理和統(tǒng)計(jì)分析領(lǐng)域,被業(yè)界和國(guó)際上公認(rèn)為標(biāo)準(zhǔn)軟件和最權(quán)威的統(tǒng)計(jì)軟件包。 SAS應(yīng)用廣泛,其應(yīng)用范圍涉及到理、工、農(nóng)、林、醫(yī)、管理、商業(yè)、行政事物等各個(gè)領(lǐng)域。國(guó)際上成立了專門的SAS協(xié)會(huì)SUGI(SAS User Group International),每年有學(xué)術(shù)會(huì)議討論研究有關(guān)SAS的問題。 SAS在我國(guó)的應(yīng)用。 SAS的主要版本。 §1.2 SAS的結(jié)構(gòu)、功能、特點(diǎn) 一、SAS結(jié)構(gòu)與功能: SAS軟件包由多個(gè)大的功能模塊組成,用戶可以根據(jù)需要,選擇安裝部分或全部SAS功能模塊來組成一個(gè)運(yùn)行系統(tǒng)。 SAS系統(tǒng)的核心(基本)部分是SAS/BASE模塊,其功能是承擔(dān)數(shù)據(jù)管理,管理用戶使用環(huán)境,進(jìn)行用戶語言的處理,調(diào)用其他模塊。在SAS/BASE模塊的基礎(chǔ)上,還可以增加如下不同的模塊、從而實(shí)現(xiàn)不同的功能。 ⑴SAS/BASE ⑵SAS/STAT ⑶SAS/AF ⑷SAS/FSP ⑸SAS/GRAPH ⑹SAS/ETS ⑺SAS/IML ⑻SAS/OR ⑼SAS/QC 二、SAS的特點(diǎn): l 實(shí)用性強(qiáng)、功能完善、使用方便、編程簡(jiǎn)單、容易學(xué)習(xí)。 l 信息存儲(chǔ)簡(jiǎn)單,數(shù)據(jù)交換接口豐富,可以調(diào)用多種格式的數(shù)據(jù)文件。 l 語言編程能力強(qiáng)大。 l 對(duì)數(shù)據(jù)連續(xù)處理。 l 統(tǒng)計(jì)分析方法豐富,使用簡(jiǎn)單。 l 具有強(qiáng)大的報(bào)表輸出和繪圖功能。 三、SAS的運(yùn)行環(huán)境: l 硬件系統(tǒng):586計(jì)算機(jī) l 操作系統(tǒng):Windows95/98/2000 §1.3 SAS for Windows 的操作入門 SAS for windows系統(tǒng)的操作界面是標(biāo)準(zhǔn)的圖形用戶界面,是標(biāo)準(zhǔn)的多文檔界面,如同Word、Excel等軟件一樣,操作使用簡(jiǎn)單、類似。軟件操作可以通過菜單或命令方式完成。 一、 SAS的安裝與啟動(dòng) ⒈ SAS的安裝: ⒉ SAS的啟動(dòng): ⒊ 系統(tǒng)的設(shè)置: 二、 SAS集成環(huán)境介紹: ⒈ SAS的集成環(huán)境: ⒉ 程序編輯窗口(Program Edit): ⒊ 日志窗口(Log): ⒋ 輸出窗口(Output): ⒌ 其它窗口: 三、 SAS操作入門: ⒈ 程序的編輯: ⒉ 程序的運(yùn)行: ⒊ 結(jié)果查看: ⒋ 有關(guān)文件的操作。 §1.4 SAS/ASSIST簡(jiǎn)介 SAS/ASSIST是為初學(xué)者學(xué)習(xí)使用SAS系統(tǒng)提供的一個(gè)交互式輔助系統(tǒng),目的是初學(xué)者更容易的掌握SAS的強(qiáng)大功能。 一、 SAS/ASSIST的啟動(dòng): 二、 SAS/ASSIST的操作入門: 三、 SAS/ASSIST的的學(xué)習(xí)資料: 請(qǐng)?jiān)L問:cie.nwsuaf.edu.cn/apptech/sjm/sas onload="this.style.overflowX='auto';">第2章SAS語言的基本概念 §2.1 SAS語言概述 SAS提供了一種完善的編程語言。如同大多數(shù)計(jì)算機(jī)高級(jí)語言一樣,SAS用戶只須要熟悉其命令、語句及簡(jiǎn)單的語法規(guī)則就可進(jìn)行數(shù)據(jù)管理和分析處理工作。因此,掌握SAS編程技術(shù)是學(xué)習(xí)SAS的關(guān)鍵環(huán)節(jié)。 在SAS中,系統(tǒng)具有眾多的計(jì)算過程,把大部分常用的復(fù)雜的數(shù)據(jù)計(jì)算的算法作為標(biāo)準(zhǔn)過程調(diào)用,用戶僅需要指出過程名及必要的參數(shù)即可,這樣使得SAS的變成變的十分簡(jiǎn)單。 SAS程序是SAS語句的有序集合。以程序的功能將SAS程序劃分成多個(gè)程序模塊(程序段),這些模塊分為兩類:數(shù)據(jù)準(zhǔn)備模塊——數(shù)據(jù)步(DATA Step)和過程部(PROC Step)。在一個(gè)SAS程序中可以有一個(gè)或多個(gè)數(shù)據(jù)步與過程步。 SAS程序的結(jié)構(gòu)和數(shù)據(jù)流向示意圖 數(shù)據(jù)步的作用是把數(shù)據(jù)源中的數(shù)據(jù)作為輸入,經(jīng)過加工后輸出到一個(gè)或多個(gè)“SAS數(shù)據(jù)集”。 過程步是把由數(shù)據(jù)步建立和產(chǎn)生的數(shù)據(jù)集中的數(shù)據(jù)作為輸入,調(diào)用一個(gè)或多個(gè)標(biāo)準(zhǔn)過程,經(jīng)標(biāo)準(zhǔn)過程計(jì)算處理后,將結(jié)果以清晰的表格或圖形方式輸出到OUTPUT窗口中或?qū)懭氪疟P文件。 簡(jiǎn)單說:數(shù)據(jù)步是為過程步準(zhǔn)備數(shù)據(jù),并將數(shù)據(jù)放入數(shù)據(jù)集中; 過程步是把指定的數(shù)據(jù)集中的數(shù)據(jù)計(jì)算處理后并輸出結(jié)果。 一個(gè)簡(jiǎn)單的SAS程序的如下: data student; input xh$ xm$ yy gs; p=yy gs; cards; 001 aaa 89 91 002 bbb 70 88 003 ccc 90 92 004 ddd 70 87 005 eee 85 83 proc print; proc means; run; 運(yùn)行結(jié)果如下: 數(shù)據(jù)集: OBS XH XM YY GS P 1 001 aaa 89 91 180 2 002 bbb 70 88 158 3 003 ccc 90 92 182 4 004 ddd 70 87 157 5 005 eee 85 83 168 平均數(shù): Variable N Mean Std Dev Minimum Maximum ------------------------------------------------------------------- YY 5 80.8000000 10.0349390 70.0000000 90.0000000 GS 5 88.2000000 3.5637059 83.0000000 92.0000000 P 5 169.0000000 11.7898261 157.0000000 182.0000000 §2.2 SAS 常量 SAS中有多種常量:數(shù)值常量,字符常量,日期、時(shí)間、日期時(shí)間常量。 ①數(shù)值常量: 數(shù)值常量是一個(gè)十進(jìn)制數(shù)值,在書寫上與數(shù)學(xué)書寫習(xí)慣一致。可分為:正負(fù)整數(shù)、小數(shù)和科學(xué)記數(shù)法。例如: 數(shù) SAS書寫 -3 -3 3.12 3.12 18000000 1.8E6 (大于1032-1必須用科學(xué)記數(shù)法表示) -0.0000125 -1.23E-5 ②字符常量: 字符常量是用一對(duì)單引號(hào)或雙引號(hào)括起來的一串字符,其長(zhǎng)度不超過200個(gè)字符。 ③日期、時(shí)間、日期時(shí)間常量: 這三類常量是將其對(duì)應(yīng)的格式化值用單引號(hào)括起來,并且后跟類型符來表示的。 l 日期值(DATE):表示為’ddmmmyy’D或’ddmmmyyyy’D。 其中dd表示日,mmm表示月份,yy或yyyy表示年份。 如:’24MAR03’D或24MAR2003’D l 時(shí)間值(TIME):表示為’hh:mm:ss’T或’hh:mm:ss. ss’T。 其中hh表示小時(shí),mm表示分鐘,ss表示分鐘。 如:’14:30:25’T或’14:30:25. 87’T。 l 日期時(shí)間值(DATATIME):表示為:’ddmmmyy:hh:mm:ss’DT。 §2.3 SAS 變量 一、變量及變量的命名 變量:指具有相同性質(zhì)的數(shù)據(jù)值的集合。變量是用變量名表示的。 變量的命名:以字母或下畫線開頭,后跟字母或數(shù)字或下畫線的字符串。長(zhǎng)度不多于8個(gè)字符??崭窈吞厥獾淖址?、@、#)不能出現(xiàn)在變量名中。 二、變量的屬性 SAS的變量分為兩類:數(shù)值型與字符型。每個(gè)變量都有長(zhǎng)度、輸入格式、輸出格式和標(biāo)號(hào)四種屬性。變量的屬性可以由首次出現(xiàn)的上下文給出定義,也可以用專用的語句定義明確給出。 1、變量的取值范圍: 數(shù)值型變量的值是數(shù)值,數(shù)值的范圍是:±10-307到±10 308。 字符型變量的值是字符串,其取值范圍最多為200個(gè)字符。 2、變量長(zhǎng)度: 變量長(zhǎng)度是指SAS數(shù)據(jù)集中存儲(chǔ)它的每一個(gè)值的字節(jié)數(shù)。 數(shù)值型變量的長(zhǎng)度為:3"8個(gè)字節(jié),默認(rèn)為8個(gè)字節(jié)。 字符型變量的的長(zhǎng)度為:1"200個(gè)字節(jié),默認(rèn)為8個(gè)字節(jié)。 3、變量的格式標(biāo)號(hào) 由于變量名長(zhǎng)度不能超過8個(gè)字符,有時(shí)變量名受此限制而不能完全表達(dá)變量的含義。變量的格式標(biāo)號(hào)是用來給變量定義一個(gè)標(biāo)簽,這樣可以提高輸出變量值時(shí)的可讀性。用LABEL語句可以定義變量的格式標(biāo)號(hào)。 4、數(shù)據(jù)缺值(Missing Values) 在數(shù)據(jù)分析中,經(jīng)常會(huì)遇到數(shù)據(jù)不全或數(shù)據(jù)缺少的問題。SAS在數(shù)據(jù)分析時(shí)允許數(shù)據(jù)缺值,一般用“.”表示。 5、變量的簡(jiǎn)化表示 SAS程序定義了完整的變量清單,可以在許多語句中使用縮寫變量清單,達(dá)到簡(jiǎn)化書寫的目的。(參見P9表2.1) §2.5 SAS 函數(shù) 如同其他高級(jí)語言一樣,SAS提供了豐富的標(biāo)準(zhǔn)函數(shù),為計(jì)算帶來極大方便。SAS函數(shù)的書寫格式為: 函數(shù)名(參數(shù)表) 例如:SIN(X) ABS(X) 一、數(shù)的參數(shù) 函數(shù)的參數(shù)可以是常量、變量、表達(dá)式。函數(shù)的參數(shù)可以是一個(gè)或多個(gè)。如: sin(x) 一個(gè)參數(shù) max(x1,x2,x3,x4,x5) 多個(gè)參數(shù) 參數(shù)書寫形式有如下三種: ① 將所有參數(shù)列入括號(hào)內(nèi),參數(shù)間用“,”隔開。如:max(x1,x2,x3,x4,x5) ② 將所有參數(shù)列入括號(hào)內(nèi),參數(shù)間用“空格”隔開,前面冠以O(shè)F,如: max(of x1 x2 x3 x4 x5) ③ 參數(shù)變量名的尾部是有序整數(shù)時(shí),可寫成:(OF 變量名1-變量名n),如: max(of x1-x5) 二、函數(shù)值 除個(gè)別函數(shù)外,多數(shù)函數(shù)值的類型與其參數(shù)類型是一致的。 三、關(guān)于函數(shù)的幾點(diǎn)說明 ① 函數(shù)不能直接用在PUT語句中。 ② 函數(shù)參數(shù)都有特定的取值范圍。 ③ 除樣本統(tǒng)計(jì)函數(shù)外,多數(shù)函數(shù)不允許有缺值。 ④ 對(duì)某些概率函數(shù),若參數(shù)選擇不當(dāng),可能引起不收斂的問題。 四、函數(shù)分類 SAS函數(shù)的類型有:算術(shù)、數(shù)學(xué)、截尾、三角、樣本統(tǒng)計(jì)、概率函數(shù)。(略) §2.6 SAS表達(dá)式 SAS表達(dá)式是由操作符和圓括號(hào)將各種操作數(shù)連接起來表示運(yùn)算關(guān)系的的式子。表達(dá)式的值可能是:數(shù)值、字符串或缺失值。 一、操作符 ① 算術(shù)運(yùn)算符 **(乘方) *(乘) /(除) (加) -(減) ② 比較(關(guān)系)運(yùn)算符 = 或EQ 等于 ^= 或 NE 不等于 > 或GT 大于 < 或LT 小于 >=或GE 大于等于 <=或LE 小于等于 比較兩個(gè)量大小關(guān)系,構(gòu)成比較表達(dá)式,運(yùn)算結(jié)果為邏輯值。如: 5>3 1 X<2*Y ”ab c”>=”XYZ” ③ 邏輯運(yùn)算符 &;amp; 或 AND | 或 OR ^ 或NOT 對(duì)邏輯值再進(jìn)行運(yùn)算,構(gòu)成邏輯表達(dá)式,運(yùn)算結(jié)果為邏輯值。如: 5>3 1 AND X<2*Y 邏輯運(yùn)算真值表: 邏輯值A(chǔ) 邏輯值B A AND B A OR B NOT A 真 真 真 真 假 真 假 假 真 假 假 真 假 真 真 假 假 假 假 真 ④ 其它運(yùn)算符 <> 取兩個(gè)量中最大值 53<>34 >< 取兩個(gè)量中最小值 53><34 || 或!聯(lián)接兩個(gè)字符串 ”abc” || ”de” 二、操作符運(yùn)算優(yōu)先級(jí) 在一個(gè)SAS表達(dá)式中,同時(shí)可能包含多個(gè)操作符,各種操作符的執(zhí)行優(yōu)先順序規(guī)定如下: 規(guī)則1:括號(hào)內(nèi)優(yōu)先 規(guī)則2:具有較高優(yōu)先級(jí)的操作先執(zhí)行,優(yōu)先級(jí)次序如下: 組1:**,正負(fù)號(hào),NOT,<>,>< 組2:*,/ 組3: ,- 組4:|| 組5:<,<=,=,^=,> ,> 組6:AND 組7:OR 規(guī)則3:組號(hào)小者優(yōu)先組號(hào)高者,優(yōu)先級(jí)先同時(shí),依次從左向右執(zhí)行。 §2.7 SAS語句與程序 SAS語句是以SAS關(guān)鍵字(保留字)開頭、后跟SAS名、特殊字符、操作符等組成,以分號(hào)結(jié)束。一個(gè)語句規(guī)定了一種操作或?yàn)橄到y(tǒng)提供默寫信息。 一、SAS關(guān)鍵字: 關(guān)鍵字是SAS系統(tǒng)已經(jīng)賦于特定含義的一個(gè)單詞或單詞縮寫,是一個(gè)特定的字符串。在SAS語句中,多數(shù)語句是以關(guān)鍵字作為開頭的。 二、SAS 名: SAS名是以字母或下畫線開頭,后跟字母或數(shù)字或下畫線的字符串。長(zhǎng)度不多于8個(gè)字符??崭窈吞厥獾淖址?、@、#)不能出現(xiàn)在變量名中。 另外,SAS保留了一些特殊的變量名并賦予特定的含義。這些變量都是以下畫線開頭和結(jié)尾,如:_N_表示當(dāng)前數(shù)據(jù)步已經(jīng)執(zhí)行過的次數(shù)。 在SAS語句中,可能出現(xiàn)的SAS名有:變量名、數(shù)據(jù)集名、過程名、輸出格式名、選項(xiàng)名、數(shù)組名、語句標(biāo)號(hào)名、文件邏輯名等。 三、SAS程序 SAS程序是由若干SAS語句組成的有序特定的集合,典型的SAS程序都包括兩個(gè)部分:數(shù)據(jù)步和過程步,整個(gè)程序以RUN語句結(jié)束。 同其它高級(jí)語言一樣,SAS程序由多行語句組成,其書寫格式如下: ① 語句可以在一行任意列開始書寫 ② 一個(gè)語句可以寫一行或多行,但要以分號(hào)結(jié)束 ③ 多條語句可以寫在一行,語句見必須以分號(hào)隔開(英文分號(hào)“;”) ④ SAS語句對(duì)英文字符不區(qū)分大小寫。 ⑤ 建議將程序書寫成鋦齒形,便于程序閱讀與調(diào)試。 |
|