圖書的第2章sas編程入門_第1頁
圖書的第2章sas編程入門_第2頁
圖書的第2章sas編程入門_第3頁
圖書的第2章sas編程入門_第4頁
圖書的第2章sas編程入門_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、第2章 SAS編程入門學(xué)習(xí)目標(biāo)掌握SAS語言構(gòu)成,學(xué)會運(yùn)用SAS語言進(jìn)行編程;掌握DATA數(shù)據(jù)步以及通過DATA步建立數(shù)據(jù)集的方法;了解各種PROC過程步的作用;熟悉各種SAS函數(shù)并逐漸學(xué)會其在SAS程序中的作用;掌握數(shù)據(jù)集的各種編輯操作方法(包括建立與保存、導(dǎo)入和導(dǎo)出、連接等);掌握一些常用的SAS語句并在SAS程序中熟練運(yùn)用。SAS語言構(gòu)成 SAS提供了一種完善的編程語言。類似于計算機(jī)的高級語言,SAS用戶只需要熟悉其命令、語句及簡單的語法規(guī)則就可以做數(shù)據(jù)管理和分析處理工作。因此,掌握SAS編程技術(shù)是學(xué)習(xí)SAS的關(guān)鍵環(huán)節(jié)。在SAS中,把大部分常用的復(fù)雜數(shù)據(jù)計算的算法作為標(biāo)準(zhǔn)過程調(diào)用,用戶僅

2、需要指出過程名及其必要的參數(shù)。這一特點(diǎn)使得SAS編程十分簡單。SAS語句 一個SAS語句是由SAS關(guān)鍵詞,SAS名字,特殊字符串,并以分號(;)結(jié)尾,它要求SAS系統(tǒng)執(zhí)行一種操作或給SAS系統(tǒng)提供信息。如:Data grade ;Do i1 to n;Input X Y $10. ;SAS語句SAS關(guān)鍵詞:許多SAS語句都是以關(guān)鍵詞開始并用它識別語句的類型,如DATA,INPUT,PROC和INFILE都被稱為關(guān)鍵詞。SAS名字:SAS語句中出現(xiàn)名字地方很多,如變量名、數(shù)據(jù)集名、格式名、過程名,及作為文件名和庫標(biāo)記的特殊名字。SAS名字最多可由8個英文字母構(gòu)成,第一個字符不能是數(shù)字,空格和特殊

3、字符$、和#也不能用于SAS的名字中。另外,保留了一些特殊的變量名并賦于特定的意義,這些變量都是以下劃線開頭和結(jié)尾,如表示數(shù)據(jù)步已執(zhí)行過的次數(shù)。SAS表達(dá)式 表達(dá)式是由一系列算符和運(yùn)算對象形成的一個指令,它被執(zhí)行后產(chǎn)生一個目標(biāo)值。運(yùn)算對象是變量和常數(shù)。表達(dá)式分為簡單表達(dá)式(僅用一個算符)和復(fù)合表達(dá)式(使用多個算符),如:9;Age1001;LOG(X);EXP(a);a*b/100等。SAS常數(shù)用來表示固定的值,它或者是一個數(shù)字,或者是固定的值,或者是字符串,或者是其它特殊記號。SAS有五種類型的常數(shù):數(shù)值常數(shù):就是出現(xiàn)在SAS語句里的數(shù)字,完全像通常的數(shù)值一樣書寫,可以包括小數(shù)點(diǎn)和負(fù)號等;字

4、符常數(shù):是由單引號括起來的1到200個字符組成的;日期和時間數(shù)值常數(shù);十六進(jìn)制數(shù)值常數(shù);十六進(jìn)制字符常數(shù)。SAS算符 比較算符:建立兩個量之間的一種關(guān)系,并要求SAS確定這種關(guān)系是成立不成立。如果它成立,輸出的運(yùn)算結(jié)果是1;如果不成立,運(yùn)算結(jié)果為0 算術(shù)算符:就是數(shù)學(xué)運(yùn)算中常用的五種運(yùn)算符號邏輯算符:通常用來連接一系列比較式 SAS算符運(yùn)算次序:下面給出復(fù)雜表達(dá)式運(yùn)算次序的準(zhǔn)則。在括號里的表達(dá)式先計算。較高優(yōu)先級的運(yùn)算先被執(zhí)行。對于相同優(yōu)先級的算符,左邊的運(yùn)算先做。SAS程序 由一系列SAS語句組成一個SAS程序。SAS程序中的語句可分為兩類步驟:DATA步和PROC步。這兩個步驟是所有SAS

5、程序的模塊。通常用DATA步產(chǎn)生SAS數(shù)據(jù)集,而用PROC步對SAS數(shù)據(jù)集內(nèi)的數(shù)據(jù)進(jìn)行分析處理并輸出結(jié)果。PROC步要求SAS從過程中調(diào)出一個過程并執(zhí)行這個過程,通常用SAS數(shù)據(jù)集作為輸入。 SAS程序示例data whb.phones;input name$ phone room height;cards;rebeccah 424 112 1.5648carol 450 112 5.6235louise 409 110 1.2568gina 474 110 1.3652mimi 410 106 1.6542alice 411 106 1.6985brenda 414 106 1.3698br

6、enda 414 105 1.8975david 438 141 1.6547betty 464 141 1.5647holly 466 140 1.5624;proc print data=phones; run;DATA步入門 SAS的數(shù)據(jù)步以DATA語句開始,用于創(chuàng)建和處理數(shù)據(jù)集。DATA語句以關(guān)鍵字“data”開始,格式如下:data 數(shù)據(jù)集名;例如:data a.case;將創(chuàng)建在庫a中名為case的SAS數(shù)據(jù)集,語句執(zhí)行后你可在與庫a對應(yīng)的目錄下看到剛剛建立的數(shù)據(jù)集文件case。DATA語句所指定的數(shù)據(jù)集,一般都是以“庫名.數(shù)據(jù)集名”的格式出現(xiàn)的,也可以單獨(dú)的“數(shù)據(jù)集名”出現(xiàn),此時

7、的數(shù)據(jù)集系統(tǒng)默認(rèn)為是臨時庫中的數(shù)據(jù)集,退出系統(tǒng)后將會被刪除。DATA步入門直接輸入方式:就是用SAS語句輸入數(shù)據(jù)來產(chǎn)生SAS數(shù)據(jù)集的過程,一般形式為: DATA 語句; Input 語句; (用于DATA步的其它語句) Cards; 數(shù)據(jù)行 ;DATA步入門從外部文件讀入數(shù)據(jù)集。數(shù)據(jù)若已經(jīng)包含在某個外部文件(文本文件或數(shù)據(jù)文件)中,可用此方法輸入數(shù)據(jù)到數(shù)據(jù)集文件中。在以上介紹的data語句后,寫入以下語句:infile 外部文件的所在位置及名稱 選項;input 變量名1變量名2 變量名n;infile語句用于從外部文件讀入數(shù)據(jù),必須出現(xiàn)在input語句之前。它的功能是指定一個包含原始數(shù)據(jù)的外

8、部文件。DATA步入門從已建立的SAS數(shù)據(jù)集中產(chǎn)生新的數(shù)據(jù)集。如果用戶從已經(jīng)建立的SAS數(shù)據(jù)集中抽取部份變量或數(shù)據(jù)來形成新的SAS數(shù)據(jù)子集,可在DATA步中通過SET命令來完成。DATA步語句及其類型 文件操作語句運(yùn)行語句控制語句信息語句 文件操作語句 用于輸入數(shù)據(jù)集或者從這個DATA步輸出文件操作語句語句的作用及意義Data告訴SAS開始DATA步,并開始創(chuàng)建一個SAS數(shù)據(jù)集Input描述數(shù)據(jù)行或外部輸入文件上的記錄Cards標(biāo)識數(shù)據(jù)行的開始Put描述用SAS輸出的這些行的格式By規(guī)定數(shù)據(jù)集被分組處理,使用by變量對分組進(jìn)行定義Set從一個或幾個已存在的SAS數(shù)據(jù)集中讀觀測Merge從兩個或

9、兩個以上的SAS數(shù)據(jù)集中合并觀測為單個觀測Inflie識別外部文件,包含DATA步將讀入的原始輸入數(shù)據(jù)運(yùn)行語句 使得用戶可以創(chuàng)建或修改變量,或者選擇一部分觀測來創(chuàng)建數(shù)據(jù)集 文件運(yùn)行語句語句的作用及意義Delete從正被創(chuàng)建的數(shù)據(jù)集中刪除觀測Stop停止產(chǎn)生當(dāng)前的數(shù)據(jù)集Where在進(jìn)入Data步之前選擇觀測Output產(chǎn)生新的觀測Remove從某個SAS數(shù)據(jù)集中刪除一個觀測Replace在相同的位置上替代觀測控制語句 對一些確定的觀測跳過一些語句,或者改變被執(zhí)行語句的次序,實現(xiàn)從程序的一部分轉(zhuǎn)移控制到另一部分 文件控制語句語句的作用及意義Do建立一組語句,它能夠作為一個語句去執(zhí)行End標(biāo)記一個D

10、O組或Select組結(jié)束Select有條件地執(zhí)行幾個SAS語句中的一個Go to使得SAS跳到本程序步帶有標(biāo)號的語句,并從這里繼續(xù)執(zhí)行If then/else有條件地執(zhí)行一個SAS語句信息語句 給出關(guān)于數(shù)據(jù)集或正被創(chuàng)建的數(shù)據(jù)集的附加信息,不是執(zhí)行語句,可以出現(xiàn)在DATA步的任何地方,并且有同樣的功能 文件信息語句語句的作用及意義Array定義一組能夠用相同方法處理的變量Informat對存儲變量值規(guī)定輸入格式Format對輸出變量值規(guī)定格式Length規(guī)定用來存儲SAS變量的字節(jié)數(shù)Label把描述性標(biāo)簽同變量聯(lián)系起來Drop指出從數(shù)據(jù)集或分析中被刪除的變量Keep指出在數(shù)據(jù)集或分析中被保留的變

11、量Rename改變數(shù)據(jù)集中一些變量的名字PROC過程步PROC步總是由PROC語句開始,然后給出運(yùn)行的SAS過程名字。例如,運(yùn)行SORT過程,則使用語句“proc sort;”來開始這個PROC步。通常PROC步只需要包括一個PROC語句給出運(yùn)行的過程名字和一個RUN語句。SAS過程名及其功用 MEANS 計算基本統(tǒng)計量 CHART 制作次數(shù)分布表 次數(shù)分布圖UNIVARIATE PLOT 正態(tài)分布檢驗 PRINT 數(shù) 據(jù) 輸 出 SORT 數(shù) 據(jù) 排 序 Tabulate 制作表格 ANOVA 方差分析 GLM 協(xié)方差分析 CORR 相關(guān)系數(shù)的計算 REG 直 線 回 歸 P 主 成 分 分

12、 析 SAS常用函數(shù)及其應(yīng)用 SAS函數(shù)是一個子程序,它由0個或幾個自變量返回一個結(jié)果值。每個SAS函數(shù)都有一個關(guān)鍵名字。為了引用函數(shù),要寫出它的名字,然后寫出一個自變量或幾個自變量,它們用括號括起來,這個函數(shù)對這些自變量執(zhí)行某種運(yùn)算 SAS常用函數(shù)及其應(yīng)用SAS函數(shù)分為十七種類型,它們是算術(shù)函數(shù)、數(shù)組函數(shù)、截取函數(shù)、數(shù)學(xué)函數(shù)、三角函數(shù)、雙曲函數(shù)、概率函數(shù)、分位數(shù)函數(shù)、非中心函數(shù)、樣本統(tǒng)計函數(shù)、隨機(jī)數(shù)函數(shù)、財政金融函數(shù)、逐位邏輯操作函數(shù)、數(shù)字函數(shù)、字符函數(shù)、日期和時間函數(shù)、州和郵政編碼換算函數(shù)和特殊函數(shù)。SAS系統(tǒng)提供的SAS函數(shù),對用戶編寫SAS程序帶來極大的方面,為統(tǒng)計分析計算提供更大的方

13、面。 SAS數(shù)據(jù)集SAS數(shù)據(jù)集是關(guān)系型結(jié)構(gòu),分為兩個部份:描述部份和數(shù)據(jù)部份 描述部份包含了一些關(guān)于數(shù)據(jù)屬性的信息即變量名稱、類型及次序等信息;數(shù)據(jù)部份的結(jié)構(gòu)完全等同于我們一般所理解的數(shù)據(jù)表,SAS數(shù)據(jù)值被安排在一個矩陣式的表狀結(jié)構(gòu)中,由字段和記錄所構(gòu)成,字段就是統(tǒng)計學(xué)中研究的變量,而記錄就是每個研究對象的觀測。SAS數(shù)據(jù)集SAS數(shù)據(jù)集又包含在SAS數(shù)據(jù)庫的文件集中。SAS數(shù)據(jù)集是最常用的一種SAS文件類型,SAS數(shù)據(jù)庫還可以包含其它類型的SAS文件SAS中數(shù)據(jù)庫分為永久性和臨時性兩種。存在于永久庫中的數(shù)據(jù)集是永久存在的(只要你不去刪除它),臨時庫中的數(shù)據(jù)集則在你退出SAS后自動被刪除。 在W

14、indows操作系統(tǒng),SAS數(shù)據(jù)庫以路徑為基礎(chǔ)的組織方式。為了使用SAS數(shù)據(jù)庫,需要為每個SAS數(shù)據(jù)庫指定一個庫標(biāo)記來識別。這一標(biāo)記又稱庫邏輯名,是某個文件所在路徑的別名。臨時數(shù)據(jù)庫的庫標(biāo)記為WORK,在SAS啟動后自動生成,結(jié)束SAS后,庫中的所有文件都被刪除。 臨時SAS數(shù)據(jù)集的建立當(dāng)啟動SAS后,系統(tǒng)自動建立一個臨時數(shù)據(jù)存儲區(qū),用來臨時存儲運(yùn)行SAS時建立或調(diào)用的SAS數(shù)據(jù)集,臨時數(shù)據(jù)庫的庫標(biāo)記為WORK,在SAS啟動后自動生成,結(jié)束SAS后,庫中的所有文件都被刪除。臨時數(shù)據(jù)庫的庫標(biāo)記不需要標(biāo)注,即SAS程序中數(shù)據(jù)集work.abc與abc的表示含義完全相同 永久型SAS數(shù)據(jù)集的建立和保

15、存SAS啟動后自動生成臨時數(shù)據(jù)庫的庫標(biāo)記,因而不需要專門進(jìn)行命名,但當(dāng)退出系統(tǒng)后臨時數(shù)據(jù)庫中的數(shù)據(jù)集會被自動清除。為了能反復(fù)多次使用同一數(shù)據(jù)集,需建立永久型SAS數(shù)據(jù)集。實際上,建立永久型SAS數(shù)據(jù)集,就是將SAS數(shù)據(jù)集儲存在數(shù)據(jù)庫邏輯名對應(yīng)的路徑目錄下。數(shù)據(jù)集的導(dǎo)入除了通過數(shù)據(jù)步創(chuàng)建數(shù)據(jù)集的方法,SAS還提供了一些其他的方式可以用來讀入其他格式的數(shù)據(jù)文件。SAS可以利用【FILE】菜單上的【Import Data】命令將其他格式的數(shù)據(jù)文件導(dǎo)入SAS系統(tǒng),創(chuàng)建SAS自己的數(shù)據(jù)集。可以導(dǎo)入的數(shù)據(jù)文件格式有:dBase數(shù)據(jù)庫,EXCEL工作表,LOTUS的數(shù)據(jù)庫,純文本的數(shù)據(jù)文件等。導(dǎo)入的操作完全

16、是對話式的,界面友好,簡便實用。以下簡單敘述導(dǎo)入的步驟 數(shù)據(jù)集的導(dǎo)出除了導(dǎo)入其它格式的數(shù)據(jù)文件,SAS系統(tǒng)也可以導(dǎo)出SAS數(shù)據(jù)集為其它格式的數(shù)據(jù)文件。SAS可以利用【FILE】菜單上的【Export Data】命令將SAS數(shù)據(jù)集導(dǎo)出SAS系統(tǒng),轉(zhuǎn)換為其它格式的數(shù)據(jù)文件。同樣地,可以導(dǎo)出的數(shù)據(jù)文件格式有:dBase數(shù)據(jù)庫,EXCEL工作表,LOTUS的數(shù)據(jù)庫,純文本的數(shù)據(jù)文件等。數(shù)據(jù)的導(dǎo)出和導(dǎo)入完全是相反的兩個過程,同樣地,導(dǎo)出數(shù)據(jù)的菜單操作也完全是對話式的,以下簡單敘述導(dǎo)出的步驟 數(shù)據(jù)集的排序 將SAS數(shù)據(jù)集中的觀測(記錄)按一個或多個變量的數(shù)值大小進(jìn)行排序,把結(jié)果存放在新的SAS數(shù)據(jù)集里,或

17、者代替原始數(shù)據(jù)集,以便其它SAS過程通過使用BY語句可以直接調(diào)用該數(shù)據(jù)集。在對數(shù)據(jù)集進(jìn)行合并或更新之前,也必須進(jìn)行排序。SORT過程能完成對數(shù)據(jù)集的排序。數(shù)據(jù)集的連接 數(shù)據(jù)集的連接就是把幾個數(shù)據(jù)集縱向連接起來,生成逐個尾部追加的合并數(shù)據(jù)集,或按一個或多個變量排序的新數(shù)據(jù)集,此過程在DATA步中通過SET語句來完成。Set語句從一個或幾個已存在的SAS數(shù)據(jù)集中讀取觀測值。每一次set語句被執(zhí)行時,SAS系統(tǒng)讀一個觀測送到程序數(shù)據(jù)向量。如果沒有其它規(guī)定,set語句從輸入數(shù)據(jù)集中讀所有變量和所有觀測。 數(shù)據(jù)集的合并 數(shù)據(jù)的合并是將兩個或多個SAS數(shù)據(jù)集中的觀測橫向合并成一個新數(shù)據(jù)集的一個觀測。請注意

18、數(shù)據(jù)集連接和合并的差別 SAS系統(tǒng)合并觀測的方式依賴于是否有BY語句伴隨著MERGE語句 SAS語句 賦值語句 輸出語句 條件語句 循環(huán)語句 WHERE語句 DELETE語句 累加語句 BY語句 UPDATE語句 本章小節(jié) 掌握SAS編程技術(shù)是學(xué)習(xí)SAS的關(guān)鍵環(huán)節(jié)。在SAS中,把大部分常用的復(fù)雜數(shù)據(jù)計算的算法作為標(biāo)準(zhǔn)過程調(diào)用,用戶僅需要指出過程名及其必要的參數(shù)。這一特點(diǎn)使得SAS編程十分簡單。 數(shù)據(jù)步程序還可以對已建立了的數(shù)據(jù)集進(jìn)行修改和產(chǎn)生輸出。在利用SAS進(jìn)行數(shù)據(jù)整理和分析之前,首先必須將數(shù)據(jù)直接輸入到SAS數(shù)據(jù)集中或者把其它格式的數(shù)據(jù)文件轉(zhuǎn)化為SAS數(shù)據(jù)集。 本章小節(jié)介紹了通過DATA步建立數(shù)據(jù)集的方法(直接輸入方式、從外部文件讀入數(shù)據(jù)集和從已建立的SAS數(shù)據(jù)集中產(chǎn)生新的數(shù)據(jù)集),DATA步語句及其類型(包括文件操作語句、運(yùn)行語句、控制語句和信息語句),DATA步是本節(jié)的重點(diǎn),也是本章的重點(diǎn)。通過DATA步建立數(shù)據(jù)集

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論