Ch2SAS編程語(yǔ)言基礎(chǔ).ppt_第1頁(yè)
Ch2SAS編程語(yǔ)言基礎(chǔ).ppt_第2頁(yè)
Ch2SAS編程語(yǔ)言基礎(chǔ).ppt_第3頁(yè)
Ch2SAS編程語(yǔ)言基礎(chǔ).ppt_第4頁(yè)
Ch2SAS編程語(yǔ)言基礎(chǔ).ppt_第5頁(yè)
已閱讀5頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章 SAS編程語(yǔ)言基礎(chǔ),從原始數(shù)據(jù)到最終報(bào)告,SAS編程語(yǔ)言同其它計(jì)算機(jī)語(yǔ)言一樣,也有自己的語(yǔ)法:關(guān)鍵詞和連結(jié)關(guān)鍵詞與其它輔助信息的規(guī)則。 由SAS語(yǔ)句組成的序列稱(chēng)為SAS程序。 一.SAS語(yǔ)句的含義 我們先來(lái)看一個(gè)實(shí)例:,1、 SAS語(yǔ)句,例1:某班16名學(xué)生4門(mén)功課成績(jī)表如下,試計(jì)算這16名學(xué)生英語(yǔ)、生理的平均分及標(biāo)準(zhǔn)差。,DATA score; INPUT no x1 x2 x3 x4 $; CARDS; ; RUN;,20010873 68 71 65 良好 20010874 74 61 68 良好 20010875 73 75 46 良好 20010876 79 80 79 優(yōu)秀 20010877 75 71 68 良好 20010884 85 85 87 優(yōu)秀 20010885 78 79 75 優(yōu)秀 20010886 80 76 79 優(yōu)秀 20010887 85 80 82 良好 20010888 77 71 75 良好 20010889 67 73 71 優(yōu)秀 20010890 75 81 70 良好 20011118 70 54 75 及格 20010893 70 66 84 及格 20010894 62 73 65 及格 20010909 82 70 79 優(yōu)秀,/*打印數(shù)據(jù)*/ PROC PRINT Data= score; VAR no x1 x2 x3 x4; RUN; /*計(jì)算均數(shù)及標(biāo)準(zhǔn)差*/ PROC MEANS Data= score; VAR x2 x3; RUN;,利用這段程序就可以完成上面的要求,/*讀入數(shù)據(jù)*/,在這個(gè)例子中: DATA, INPUT, CARDS, PROC, VAR, RUN是關(guān)鍵詞; score是數(shù)據(jù)集名; no, x1, x2, x3,x4是變量名;$是特殊字符; MEANS是過(guò)程名; Data=是MEANS語(yǔ)句中的選項(xiàng)。 現(xiàn)在,我們給出SAS語(yǔ)句的定義:SAS語(yǔ)句是由關(guān)鍵詞、SAS名、特殊字符或運(yùn)算符組成并以分號(hào)結(jié)尾的字符串。,The MEANS Procedure Variable N Mean Std Dev Minimum Maximum - x2 16 72.8750000 7.8729495 54.0000000 85.0000000 x3 16 73.0000000 9.7911525 46.0000000 87.0000000 -,二.幾個(gè)概念 1.SAS關(guān)鍵詞 位于句首的用以說(shuō)明語(yǔ)句類(lèi)型和功能的單詞稱(chēng)為SAS語(yǔ)句的關(guān)鍵詞。它是SAS語(yǔ)句的主要成份。如:PROC、DATA、VAR、RUN等。 2.SAS名 SAS語(yǔ)句中出現(xiàn)的SAS名有很多種類(lèi),如變量名、SAS數(shù)據(jù)集名等。 SAS命名規(guī)則: 1)由1至32個(gè)字符組成(SAS7以下版本為最多8個(gè)字符); 2)由三種字符構(gòu)成: 英文字母A-Z,a-z,下劃線_,數(shù)字0-9; 3)每個(gè)名字的第一個(gè)字符不能為數(shù)字; 4)SAS系統(tǒng)保留了一些名字作為特殊的變量名,這些變量名的開(kāi)頭和結(jié)尾都用特殊字符下劃線表示(如_N_、_ERROR_等)。,3.特殊字符和運(yùn)算符 特殊字符包括: 圓括號(hào)( )、單引號(hào) 、雙引號(hào)“ “、美圓符號(hào)$、列指針控制符、行指針控制符#、冒號(hào):、句號(hào).、分號(hào);等; 運(yùn)算符包括: 加號(hào)+、減號(hào)-、乘號(hào)*、除號(hào)/、乘方*等,等號(hào)=、不等號(hào)=、小于號(hào)、小于等于號(hào)=等。 三.語(yǔ)句格式 SAS語(yǔ)句的基本格式是: 關(guān)鍵詞 參數(shù) 選項(xiàng)1|選項(xiàng)2|選項(xiàng)3 選擇值; 關(guān)鍵詞:用以說(shuō)明語(yǔ)句類(lèi)型和功能的單詞; 參數(shù):要求用戶(hù)提供的信息。不用括號(hào),不是任選項(xiàng)。,例如:INPUT x y z; 其中:INPUT是關(guān)鍵詞,它說(shuō)明要把數(shù)據(jù)提供給哪些變量。后面跟的變量名x、y、z 都是參數(shù),即要求用戶(hù)提供的信息。 選項(xiàng)1 | 選項(xiàng)2 | 選項(xiàng)3 中的豎線“|”用來(lái)分隔各選擇項(xiàng),表示其中任選一個(gè);方括號(hào)內(nèi)的信息是可以選擇的。 例如:PROC MEANS data=store maxdec=3; 其中: PROC是語(yǔ)句的關(guān)鍵詞,它說(shuō)明本語(yǔ)句是過(guò)程語(yǔ)句; MEANS是過(guò)程名,它說(shuō)明要調(diào)用的過(guò)程名稱(chēng);data=、maxdec=都是選項(xiàng)的關(guān)鍵詞,等號(hào)后面是用戶(hù)提供的選擇信息。,一系列SAS語(yǔ)句組成一段SAS程序。SAS程序中的語(yǔ)句可分為兩類(lèi):DATA步和PROC步。這兩類(lèi)步驟是所有SAS程序的組成模塊。通常用DATA步產(chǎn)生SAS數(shù)據(jù)集而用PROC步對(duì)SAS數(shù)據(jù)集內(nèi)的數(shù)據(jù)進(jìn)行分析處理并輸出結(jié)果。 一段SAS程序可由一個(gè)DATA步或一個(gè)PROC步組成;或者由DATA步和PROC步兩部分組成;也可由多個(gè)DATA步和多PROC步組成。,2、 SAS程序,DATA步包括:創(chuàng)建一個(gè)或幾個(gè)新的SAS數(shù)據(jù)集的語(yǔ)句和創(chuàng)建數(shù)據(jù)集所必須的運(yùn)算操作語(yǔ)句。 DATA步以DATA語(yǔ)句開(kāi)頭,可以包含任意多個(gè)SAS程序語(yǔ)句。 一個(gè)DATA步的基本語(yǔ)句有: DATA語(yǔ)句:表示創(chuàng)建SAS數(shù)據(jù)集; INPUT語(yǔ)句:對(duì)SAS數(shù)據(jù)集中的變量進(jìn)行描述; (更多其它語(yǔ)句) CARDS語(yǔ)句:用來(lái)指示數(shù)據(jù)行的開(kāi)始; 數(shù)據(jù)行 ;語(yǔ)句:表示數(shù)據(jù)行的結(jié)束。 RUN;,1.DATA步(數(shù)據(jù)步),DATA score; INPUT no x1 x2 x3 x4 $; CARDS; ; RUN;,20010873 68 71 65 良好 20010874 74 61 68 良好 20010875 73 75 46 良好 20010876 79 80 79 優(yōu)秀 20010877 75 71 68 良好 20010884 85 85 87 優(yōu)秀 20010885 78 79 75 優(yōu)秀 20010886 80 76 79 優(yōu)秀 20010887 85 80 82 良好 20010888 77 71 75 良好 20010889 67 73 71 優(yōu)秀 20010890 75 81 70 良好 20011118 70 54 75 及格 20010893 70 66 84 及格 20010894 62 73 65 及格 20010909 82 70 79 優(yōu)秀,DATA關(guān)鍵詞告訴系統(tǒng),要?jiǎng)?chuàng)建一個(gè)SAS數(shù)據(jù)集,命名為score,INPUT關(guān)鍵詞告訴系統(tǒng),數(shù)據(jù)在程序流中,并且指明數(shù)據(jù)所對(duì)應(yīng)的變量名及類(lèi)型。$符號(hào)說(shuō)明它前面的一個(gè)變量為字符型。,CARDS關(guān)鍵詞告訴系統(tǒng),其后緊隨著的便是數(shù)據(jù)。,數(shù)據(jù)行,數(shù)據(jù)源中不能有分號(hào)(;)。,;表示數(shù)據(jù)行的結(jié)束,表示該數(shù)據(jù)步結(jié)束,PROC步要求SAS系統(tǒng)從過(guò)程庫(kù)中調(diào)出一個(gè)過(guò)程模塊并執(zhí)行它。 PROC步以PROC語(yǔ)句開(kāi)始,可以包含多個(gè)相應(yīng)的SAS語(yǔ)句。 例如: PROC MEANS Data=score; VAR x2 x3; PROC PRINT Data=score; VAR x1 x3 x4; RUN; 注意:一個(gè)完整的SAS程序必須以RUN語(yǔ)句結(jié)尾方能提交運(yùn)行。,2.PROC步(過(guò)程步),3、編寫(xiě)SAS程序,DATA score; INPUT no x1 x2 x3 x4 $; CARDS; ; RUN;,20010873 68 71 65 良好 20010874 74 61 68 良好 20010875 73 75 46 良好 20010876 79 80 79 優(yōu)秀 20010877 75 71 68 良好 20010884 85 85 87 優(yōu)秀 20010885 78 79 75 優(yōu)秀 20010886 80 76 79 優(yōu)秀 20010887 85 80 82 良好 20010888 77 71 75 良好 20010889 67 73 71 優(yōu)秀 20010890 75 81 70 良好 20011118 70 54 75 及格 20010893 70 66 84 及格 20010894 62 73 65 及格 20010909 82 70 79 優(yōu)秀,PROC PRINT Data= score; VAR no x1 x2 x3 x4; RUN; PROC MEANS Data= score; VAR x2 x3; RUN;,以上一個(gè)DATA步和兩個(gè)PROC步就構(gòu)成了一段SAS程序。,上面SAS程序的輸出結(jié)果如下:,The SAS System 09:22 Monday, August 16, 2004 10 Obs no x1 x2 x3 x4 1 20010873 68 71 65 良好 2 20010874 74 61 68 良好 3 20010875 73 75 46 良好 4 20010876 79 80 79 優(yōu)秀 5 20010877 75 71 68 良好 6 20010884 85 85 87 優(yōu)秀 7 20010885 78 79 75 優(yōu)秀 8 20010886 80 76 79 優(yōu)秀 9 20010887 85 80 82 良好 10 20010888 77 71 75 良好 11 20010889 67 73 71 優(yōu)秀 12 20010890 75 81 70 良好 13 20011118 70 54 75 及格 14 20010893 70 66 84 及格 15 20010894 62 73 65 及格 16 20010909 82 70 79 優(yōu)秀 The MEANS Procedure Variable N Mean Std Dev Minimum Maximum - x2 16 72.8750000 7.8729495 54.0000000 85.0000000 x3 16 73.0000000 9.7911525 46.0000000 87.0000000 -,(1)書(shū)寫(xiě)格式 SAS語(yǔ)句可以從一行上的任意位置開(kāi)始;幾個(gè)SAS語(yǔ)句可以寫(xiě)在同一行上;一個(gè)語(yǔ)句也可以寫(xiě)成幾行,只要語(yǔ)句中的單詞不被斷開(kāi)即可; 在一條語(yǔ)句中各項(xiàng)之間至少要有一個(gè)空格; SAS對(duì)大小寫(xiě)不敏感。即SAS語(yǔ)句用大寫(xiě)字母、小寫(xiě)字母或大、小寫(xiě)混合書(shū)寫(xiě)均可。 (2)注釋 SAS語(yǔ)句中有一個(gè)注釋語(yǔ)句,形式為: /*注釋內(nèi)容*/ /*打印數(shù)據(jù)*/ Proc print data=a; Run;,1.SAS程序的書(shū)寫(xiě)方法,程序的執(zhí)行 .在命令框中輸入:submit .按 F8 鍵 .點(diǎn)擊工具欄中的Submit按鈕 SAS程序的輸出 Log窗口產(chǎn)生程序執(zhí)行的相關(guān)信息; Output窗口顯示輸出的結(jié)果(主要是過(guò)程步),2.SAS程序的的執(zhí)行與輸出,4 SAS表達(dá)式,SAS表達(dá)式是由一系列算符和運(yùn)算對(duì)象形成的一個(gè)指令集,它被執(zhí)行后產(chǎn)生一個(gè)目標(biāo)值。 運(yùn)算對(duì)象是SAS變量和SAS常數(shù); 算符是特殊的運(yùn)算符、函數(shù)和括號(hào)。 下列式子都是表達(dá)式。 X+1 3 LOG(X) LOG10(X) P/A*100 AGE100 1-EXP(N/(N-1) A=B=C STATE=CA 在DATA步中,為了對(duì)變量進(jìn)行變換,建立新變量、條件處理、計(jì)算新值及指定新值,都需要使用SAS表達(dá)式。,一.SAS常量 SAS常量用來(lái)表示固定的值,它或者是一個(gè)數(shù)字,或者是用引號(hào)引起來(lái)的字符串、或者是其它特殊記號(hào)。 SAS常用的常量有: 數(shù)值常量、字符常量、日期時(shí)間常量 1.數(shù)值常量: 數(shù)值常量可以包括小數(shù)點(diǎn),負(fù)號(hào)和E記號(hào),與通用的數(shù)值記法類(lèi)似。 例如:1 -5 1.23 1.2E23 0.1 0.5E-10 SAS系統(tǒng)中,缺失值用小數(shù)點(diǎn)來(lái)(.)表示。,2.字符常量: 字符常量是由引號(hào)(單、雙)括起來(lái)的字符串,最多可達(dá)32767個(gè)字符。 在下面的語(yǔ)句中: IF Name=“TOM” THEN DO; “TOM”就是一個(gè)字符常量。 缺失的字符常量值為空字符,表示為(兩個(gè)連續(xù)的單引號(hào))或者“”。,3. 日期、時(shí)間常量: 日期時(shí)間常量是將日期時(shí)間由引號(hào)(單、雙)括起來(lái),并在后面加上 d(日期常量)或 t(時(shí)間常量)或 dt(日期時(shí)間常量) 例如: 日期常量:15may2008d 時(shí)間常量:16:45:01t 日期時(shí)間常量:15may2008:16:45:01dt,二 SAS變量: 描述給定特征的數(shù)值集合的指標(biāo)稱(chēng)為變量。 SAS變量的特征: 變量名、類(lèi)型、存儲(chǔ)長(zhǎng)度、標(biāo)簽、輸入格式、輸出格式,存儲(chǔ)長(zhǎng)度,默認(rèn)情況下所有的變量都定義為8字節(jié)。 字符變量的長(zhǎng)度可為1-32767字節(jié) 數(shù)值變量的長(zhǎng)度可為3-8字節(jié) 標(biāo)簽是對(duì)變量的補(bǔ)充說(shuō)明,可以為任意字符,長(zhǎng)度可多達(dá)256個(gè)字節(jié)。,輸入輸出格式,原始數(shù)據(jù)值,SAS 變量的值,格式化的 SAS變量值,Dollar10.,Comma8.,548,231,28SEP2009,18168,09/28/2009,Date9.,MMDDYY10.,$548,231,548231,日期和時(shí)間數(shù)據(jù)的存儲(chǔ),SAS采用數(shù)值存儲(chǔ)日期和時(shí)間形式的數(shù)據(jù)。 在默認(rèn)情況下,SAS系統(tǒng)以0代表1960年1月1日0時(shí)。 其它日期在SAS系統(tǒng)中被存儲(chǔ)為與該日期相差的天數(shù)。 例如,1960年1月3日,在系統(tǒng)中存為2。 2009年9月28日,在系統(tǒng)中存為18168。 注意:為了使數(shù)值型變量顯示日期形式,必須使用日期型的輸出格式,同樣地為了以日期形式輸入日期必須使用日期型的輸入格式。,SAS變量分為兩類(lèi),數(shù)值變量(Num)與字符變量(Char)。 數(shù)值型變量只能取數(shù)值??梢杂姓?fù)號(hào)及小數(shù)點(diǎn)(+、),但不能有逗號(hào)(,)。 數(shù)值型是SAS的默認(rèn)變量類(lèi)型 字符型變量可以取字符、字母、特殊字符以及數(shù)字為值。 在DATA步的input語(yǔ)句中需要加$來(lái)定義字符型變量。但引用時(shí)不加$ 定義name為字符變量: input name$; 引用時(shí)不加$符號(hào): if name = Tom then output;,三 SAS算符 SAS算符是一些符號(hào),它們要求作比較、算術(shù)運(yùn)算或邏輯運(yùn)算。 1.算術(shù)算符: 算術(shù)算符表示執(zhí)行一種算術(shù)運(yùn)算,包括: + 相加 - 相減 * 相乘 / 相除 * 乘方 注意:如果算術(shù)算符有一個(gè)運(yùn)算對(duì)象是缺失值,運(yùn)算結(jié)果也是缺失值。 例如,y=x3 + . ; 則y的值為缺失值(.),2.比較算符 比較算符確定兩個(gè)量之間的一種關(guān)系,如果這種關(guān)系成立,則輸出結(jié)果為1(真);如果它不成立,則輸出結(jié)果為0(假)。 比較算符包括: = (EQ) 等于 = (NE) 不等于 (GT) 大于 = (GE) 大于等于 = (LE) 小于等于,3.邏輯算符: 邏輯算符也稱(chēng)為布爾(Boolean)算符,在表達(dá)式里通常用來(lái)連接一系列比較式。 邏輯算符包括: &(AND) 與; | (OR) 或; (NOT) 非 例如,age=25 AND sex=男 或 age=25 & sex=男 age=25 OR sex=男 4.運(yùn)算次序: 關(guān)于運(yùn)算次序,SAS有如下的三個(gè)準(zhǔn)則: 準(zhǔn)則1:在括號(hào)里的表達(dá)式先計(jì)算; 準(zhǔn)則2:較高優(yōu)先級(jí)的運(yùn)算先被執(zhí)行。,下面是各運(yùn)算符的優(yōu)先等級(jí)(排在前面的優(yōu)先): 1級(jí) *、(not) 2級(jí) *、/ 3級(jí) +、-、 4級(jí) 、=、 、 2*(3*2) 2) 當(dāng)兩個(gè)比較算符圍著一個(gè)量時(shí),則等價(jià)于一個(gè)and運(yùn)算。例如:12 12age and age20,一 .SAS函數(shù) 1.SAS函數(shù)形式: 函數(shù)名 (參數(shù)1,參數(shù)2,) 例如: MEAN(x,y,z,a) SUM(x,y,z) MIN(SUM(x,y,z),1000),5 SAS函數(shù),2. SAS函數(shù)的分類(lèi):,二 SAS函數(shù)的參數(shù)及三種形式 1. SAS函數(shù)的參數(shù) 參數(shù)可以是簡(jiǎn)單的變量名、常數(shù)或者表達(dá)式。例如: max(cash,credit) sqrt(2500) min(sum(of x1-x10),y

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論