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