SAS統(tǒng)計(jì)分析基礎(chǔ)課件_第1頁(yè)
SAS統(tǒng)計(jì)分析基礎(chǔ)課件_第2頁(yè)
SAS統(tǒng)計(jì)分析基礎(chǔ)課件_第3頁(yè)
SAS統(tǒng)計(jì)分析基礎(chǔ)課件_第4頁(yè)
SAS統(tǒng)計(jì)分析基礎(chǔ)課件_第5頁(yè)
已閱讀5頁(yè),還剩73頁(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)介

現(xiàn)代統(tǒng)計(jì)分析與SAS入門(mén)學(xué)習(xí)目標(biāo)1、了解SAS系統(tǒng)的功能特點(diǎn);2、熟悉SAS系統(tǒng)的操作環(huán)境;3、掌握SAS系統(tǒng)的有關(guān)概念;4、學(xué)會(huì)使用DADAStep(數(shù)據(jù)步)建立數(shù)據(jù)集,能對(duì)現(xiàn)有數(shù)據(jù)集進(jìn)行讀入、修改、拼接及合并;5、學(xué)會(huì)使用PROCStep(過(guò)程步)的幾個(gè)重要過(guò)程對(duì)數(shù)據(jù)集進(jìn)行常規(guī)的統(tǒng)計(jì)分析和顯示;6、學(xué)會(huì)自己查看系統(tǒng)幫助;7、能夠利用SAS系統(tǒng)處理常見(jiàn)的研究數(shù)據(jù)?;緝?nèi)容1、SAS概述;2、SAS顯示管理系統(tǒng);3、SAS編程基礎(chǔ):SAS語(yǔ)句;SAS表達(dá)式;SAS常量;SAS變量;SAS算符;SAS函數(shù);4、DADAStep(數(shù)據(jù)步);5、PROCStep(過(guò)程步);6、常用統(tǒng)計(jì)分析模塊。4、SAS系統(tǒng)的特點(diǎn)SAS系統(tǒng)是用于數(shù)據(jù)分析與決策支持的大型集成式模塊化軟件包,是一種組合軟件系統(tǒng)。核心部分是BaseSAS軟件,其它可選模塊有:SAS/STAT軟件、SAS/GRAPH軟件、SAS/IML軟件、SAS/OR軟件、SAS/ETS軟件等30多個(gè)。1、操作簡(jiǎn)便

SAS的宗旨是為所有需要進(jìn)行數(shù)據(jù)處理、數(shù)據(jù)分析的非計(jì)算機(jī)專(zhuān)業(yè)人員提供一種易學(xué)易用、完整可靠的軟件系統(tǒng)。用戶(hù)把要解決的問(wèn)題用SAS語(yǔ)言(近乎自然英語(yǔ)的非過(guò)程語(yǔ)言)表達(dá)出來(lái),組成SAS程序,提交給SAS系統(tǒng)就可以解決所提出的問(wèn)題。2、SAS系統(tǒng)將數(shù)據(jù)管理與統(tǒng)計(jì)分析溶為一體

SAS程序的結(jié)構(gòu)由兩個(gè)基本步驟任意組合而成。DATA步用于對(duì)數(shù)據(jù)的加工處理;PROC步用于分析數(shù)據(jù)和編寫(xiě)報(bào)告。SAS系統(tǒng)克服了通常軟件或偏重于數(shù)據(jù)管理功能或偏重于統(tǒng)計(jì)分析的弊病,把數(shù)據(jù)管理與統(tǒng)計(jì)分析有機(jī)地結(jié)合在一起。3、適用性強(qiáng)、應(yīng)用面廣

SAS系統(tǒng)適用于任何經(jīng)驗(yàn)的人員(初學(xué)者或有經(jīng)驗(yàn)的用戶(hù));適用于任何類(lèi)型的數(shù)據(jù);適用于幾乎是任何應(yīng)用的需要;適用于任何計(jì)算機(jī)環(huán)境;擴(kuò)展性能強(qiáng)。5、SAS軟件的啟動(dòng):用如下方法可以進(jìn)入SAS系統(tǒng)的窗口運(yùn)行環(huán)境:菜單方式:依次點(diǎn)擊“開(kāi)始”------->“程序”-------->“TheSASSystem”------>“TheSASSystemforWindowsv6.12”即可。

快捷方式:在Windows桌面系統(tǒng)下雙擊

SAS圖標(biāo);6、SAS工作界面在命令窗口輸入“keys”后情況命令行命令窗(條)7、SAS顯示管理系統(tǒng)SAS顯示管理窗口可分為兩大類(lèi):基本窗口和其它窗口。基本窗口(三個(gè)):PROGRAMEDITOR窗口(程序編輯窗,縮寫(xiě)為PGM);LOG窗口(登錄窗或日志窗);OUTPUT窗口(輸出窗);PGM窗口:輸入和編輯文本,包括SAS語(yǔ)句;提交SAS語(yǔ)句;拷貝一個(gè)外部文件到PGM窗口,或拷貝窗口內(nèi)容到外部文件上;LOG窗口

LOG窗口包含SAS日志,它是當(dāng)前SAS會(huì)話的記錄。一個(gè)典型的記錄顯示:在當(dāng)前會(huì)話中發(fā)布的SAS語(yǔ)句;注釋、警告和出錯(cuò)信(紅色---錯(cuò)誤

蘭色---正常

綠色---警告)OUTPUT窗口:這個(gè)窗口也稱(chēng)為L(zhǎng)ISTING窗口,它包含由大多數(shù)SAS過(guò)程產(chǎn)生的輸出。在SAS會(huì)話期間相繼產(chǎn)生的輸出都附加到OUTPUT窗口內(nèi)容中。其它窗口:除了三個(gè)基本窗口以外,顯示管理包含很多其它窗口。各個(gè)窗口均可在任何一個(gè)窗口的命令行鍵入相應(yīng)的命令來(lái)打開(kāi)。下面按字母順序列出包括三個(gè)基本窗口在內(nèi)的主要顯示管理窗口,并給出簡(jiǎn)單描述。常用顯示管理窗口及調(diào)用命令8、顯示管理命令SAS顯示管理系統(tǒng)包括眾多的命令讓用戶(hù)完成各種任務(wù)。根據(jù)發(fā)布命令的位置可將其分為命令行命令和行命令。顯示管理命令按習(xí)慣是從命令行command===>輸入相應(yīng)的命令發(fā)布的,因此稱(chēng)這些命令為命令行命令;而一些文本編輯命令按習(xí)慣是從顯示的行號(hào)上發(fā)布的,因此這些命令稱(chēng)為行命令(Windows環(huán)境下較少應(yīng)用)。幾個(gè)重要的命令行命令:1)窗口切換命令:

PGM|F5:切換到PGM窗口

LOG|F6:切換到LOG窗口

OUTPUT|F7:切換到OUTPUT窗口2)編輯命令:

CLEAR|Ctr+E:清除當(dāng)前工作窗口的所有信息

RECALL|F4:將運(yùn)行過(guò)的程序調(diào)回到PGM窗口

SUBMIT|F8:將PGM窗中的所有程序提交運(yùn)行

HOME:將光標(biāo)移到命令行保存文件:

方法1

(命令法):

FILE命令:將當(dāng)前工作窗口的內(nèi)容寫(xiě)到外部文件中。例如:FILE‘D:\My’回車(chē)后將信息寫(xiě)到D盤(pán)根目錄下一個(gè)名為My的文件上。

方法2(菜單法):

“File”“SaveAs”,輸入文件名“Myfile”點(diǎn)“保存”即可。打開(kāi)文件:方法1

(命令法):INCLUDE|INC:將指定的外部文件調(diào)入PGM窗。例如:INC‘D:\My’回車(chē)后將D盤(pán)根目錄下一個(gè)名為My的外部文件調(diào)入PGM窗。注1:該命令只能在PGM窗使用;如果PGM窗已有文本,則該命令將指定的外部文件調(diào)入窗口文本的后面。方法2(菜單法):“File”“Open…”,找到相應(yīng)的文件,點(diǎn)“打開(kāi)”即可。9、文件的保存與打開(kāi)3、在D:盤(pán)根目錄下建立一個(gè)文件夾,取名為:SASEX2004。將上題(題2)修改好的程序、輸出結(jié)果及日志窗中的內(nèi)容保存在前面建立的文件夾中。上機(jī)練習(xí)題(Cont.)第一章結(jié)束

SASwebsite:第二章SAS編程語(yǔ)言基礎(chǔ)

同其它計(jì)算機(jī)語(yǔ)言一樣,SAS語(yǔ)言也有它自己的語(yǔ)法:關(guān)鍵詞和連結(jié)關(guān)鍵詞與其它輔助信息的規(guī)則。用戶(hù)使用SAS語(yǔ)言來(lái)定義數(shù)據(jù)和規(guī)定對(duì)數(shù)據(jù)怎樣做統(tǒng)計(jì)分析的問(wèn)題。由SAS語(yǔ)句組成的序列稱(chēng)為SAS程序?!?、SAS語(yǔ)句一.SAS語(yǔ)句的含義我們先來(lái)看一個(gè)實(shí)例:DATA

score;INPUT

nox1x2x3x4$;CARDS;;RUN;

687165

良好20010874 746168

良好20010875 737546

良好20010876 798079

優(yōu)秀20010877 757168

良好20010884 858587

優(yōu)秀20010885 787975

優(yōu)秀20010886 807679

優(yōu)秀20010887 858082

良好20010888 777175

良好20010889 677371

優(yōu)秀20010890 758170

良好20011118 705475

及格20010893 706684

及格20010894 627365

及格20010909 827079

優(yōu)秀PROC PRINTData=

score;VAR

nox1x2x3x4;RUN;PROCMEANSData=

score;VAR

x2x3;RUN;

dataex1;

inputname$agesex;

cards;xiaomin191lidong201nana182;

procprintdata=ex1;

run;

procprintdata=ex1;

Varnameagesex;

run;第一章練習(xí)題在這個(gè)例子中,我們看到:DATA,INPUT,CARDS,PROC,VAR,RUN是關(guān)鍵詞;score是數(shù)據(jù)集名;no,x1,x2,x3,x4是變量名;MEANS是過(guò)程名;Data=是MEANS語(yǔ)句中的選項(xiàng)?,F(xiàn)在,我們給出SAS語(yǔ)句的定義:SAS語(yǔ)句是由關(guān)鍵詞、SAS名、特殊字符或運(yùn)算符組成并以分號(hào)結(jié)尾的字符串。TheMEANSProcedureVariableNMeanStdDevMinimumMaximum------------------------------------------------------------------------------x21672.87500007.872949554.000000085.0000000x31673.00000009.791152546.000000087.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至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_等)。例如:INPUT

xyz;其中:INPUT是關(guān)鍵詞,它說(shuō)明要把數(shù)據(jù)提供給哪些變量。后面跟的變量名x、y、z

都是參數(shù),即要求用戶(hù)提供的信息?!硎緟?shù)可以不止一個(gè)。[選項(xiàng)1|選項(xiàng)2|選項(xiàng)3]中的豎線“|”用來(lái)分隔各選擇項(xiàng),表示其中任選一個(gè);方括號(hào)內(nèi)的信息是可以選擇的。例如:PROCMEANS

data=storemaxdec=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步組成?!?、SAS程序PROC步要求SAS系統(tǒng)從過(guò)程庫(kù)中調(diào)出一個(gè)過(guò)程模塊并執(zhí)行它。PROC步以PROC語(yǔ)句開(kāi)始,其后緊跟一個(gè)過(guò)程名(英文關(guān)鍵字);一個(gè)過(guò)程步可以包含多個(gè)相應(yīng)的SAS語(yǔ)句。例如:PROCMEANSData=score;VAR

x2x3;PROCPRINTData=score;VAR

x1x3x4;注意:一個(gè)完整的SAS程序必須以RUN語(yǔ)句結(jié)尾方能提交運(yùn)行。

2.PROC步(過(guò)程步)§3、編寫(xiě)SAS程序DATA

score;INPUT

nox1x2x3x4$;CARDS;;RUN;

687165

良好20010874 746168

良好20010875 737546

良好20010876 798079

優(yōu)秀20010877 757168

良好20010884 858587

優(yōu)秀20010885 787975

優(yōu)秀20010886 807679

優(yōu)秀20010887 858082

良好20010888 777175

良好20010889 677371

優(yōu)秀20010890 758170

良好20011118 705475

及格20010893 706684

及格20010894 627365

及格20010909 827079

優(yōu)秀PROC PRINTData=

score;VAR

nox1x2x3x4;RUN;PROCMEANSData=

score;VAR

x1x2x3;RUN;以上一個(gè)DATA步和兩個(gè)PROC步就構(gòu)成了一個(gè)SAS程序。上面SAS程序的輸出結(jié)果如下:TheSASSystem09:22Monday,August16,2004

10Obsnox1x2x3x4

1

68

71

65

良好

2

74

61

68

良好

3

73

75

46

良好

4

79

80

79

優(yōu)秀

5

75

71

68

良好

6

85

85

87

優(yōu)秀

7

78

79

75

優(yōu)秀

8

80

76

79

優(yōu)秀

9

85

80

82

良好

10

77

71

75

良好

11

67

73

71

優(yōu)秀

12

75

81

70

良好

13

70

54

75

及格

14

70

66

84

及格

15

62

73

65

及格

16

82

70

79

優(yōu)秀

TheMEANSProcedureVariableNMeanStdDevMinimumMaximum------------------------------------------------------------------------------x216

72.8750000

7.8729495

54.0000000

85.0000000x316

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)即可;在一個(gè)語(yǔ)句中各項(xiàng)之間至少要有一個(gè)空格;一些特殊符號(hào)(如等號(hào)=,加號(hào)+)可以占據(jù)空格的位置,如:total=a+10;與total=a+10;是等價(jià)的;SAS語(yǔ)句用大寫(xiě)字母、小寫(xiě)字母或大、小寫(xiě)混合書(shū)寫(xiě)均可。(2)注釋

SAS語(yǔ)句中有一個(gè)注釋語(yǔ)句,形式為:

/*注釋內(nèi)容*/凡是空格可以出現(xiàn)的地方,以上形式的注釋語(yǔ)句也能出現(xiàn)。例如:

PROCSORT/*對(duì)數(shù)據(jù)集排序*/;就是一個(gè)合法的語(yǔ)句。1.SAS程序的書(shū)寫(xiě)方法(3)變量的縮寫(xiě)變量在數(shù)據(jù)集中的實(shí)際位置按它們第一次出現(xiàn)的次序被定義。例如:前面的例子的INPUT語(yǔ)句中,no被定義為第一個(gè)變量,接著是x1,x2,x3,x4。在一些SAS語(yǔ)句中,需要對(duì)變量進(jìn)行集中處理,SAS采用如下的方式來(lái)解決這個(gè)問(wèn)題:形如x1,x2,x3...xn的帶序號(hào)的變量名,縮寫(xiě)為x1-xn;形如x1,a,b,x2,x3,d的不帶序號(hào)的變量名,縮寫(xiě)為x1--d;特殊的SAS變量,_numeric_表示所有數(shù)值變量;

_character_表示所有字符變量;

_all_表示所有變量。請(qǐng)看上面的數(shù)據(jù)集,這些變量在數(shù)據(jù)集中的位置是:nox1agex2x3x4x5下面以VAR語(yǔ)句為例說(shuō)明SAS變量縮寫(xiě)引用中-與--區(qū)別:VARx1-x5;表示只引用變量x1x2x3x4x5,與VAR

x1x2x3x4x5;語(yǔ)句等價(jià)。VARx1--x5;表示引用在位置上從x1到x5之間的所有變量x1agex2x3x4x5,與VAR

x1agex2x3x4x5;語(yǔ)句等價(jià)。程序的執(zhí)行當(dāng)我們?cè)赑GM窗口將程序輸入完畢,檢查修改后就可以提交給SAS系統(tǒng)執(zhí)行。在LOG窗口顯示程序執(zhí)行中記錄的信息,它包括:執(zhí)行哪些語(yǔ)句;生成的數(shù)據(jù)集中變量個(gè)數(shù)及觀測(cè)個(gè)數(shù)是多少;程序執(zhí)行所消耗的時(shí)間及出錯(cuò)信息等。SAS過(guò)程的輸出前例提交執(zhí)行以后,DATA步產(chǎn)生一個(gè)名為score的SAS數(shù)據(jù)集;后面的兩個(gè)PROC步產(chǎn)生的結(jié)果輸出到OUTPUT窗口(如前例的輸出)。2.SAS程序的的執(zhí)行與輸出§4SAS表達(dá)式

前面簡(jiǎn)單介紹了SAS語(yǔ)句和SAS程序的構(gòu)成。要靈活的完成日常的數(shù)據(jù)管理和統(tǒng)計(jì)分析工作,還得很好掌握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á)式分為簡(jiǎn)單表達(dá)式和復(fù)合表達(dá)式。下列式子都是表達(dá)式。X+13LOG(X)LOG10(X)P/A*100AGE<1001-EXP(N/(N-1))A=B=CSTATE=‘CA’

在DATA步中,為了對(duì)變量進(jìn)行變換,建立新變量、條件處理、計(jì)算新值及指定新值,都需要使用SAS表達(dá)式。一.SAS常數(shù)

SAS常數(shù)用來(lái)表示固定的值,它或者是一個(gè)數(shù)字,或者是用引號(hào)引起來(lái)的字符串、或者是其它特殊記號(hào)。SAS使用的常數(shù)有五種類(lèi)型:數(shù)值常量、字符常量、日期、時(shí)間和日期時(shí)間常量、十六進(jìn)制數(shù)值常量、十六進(jìn)制字符常量。我們主要介紹數(shù)值常量和字符常量。1.數(shù)值常量:一個(gè)數(shù)值常量就是出現(xiàn)在SAS語(yǔ)句里的數(shù)字。很多數(shù)值常量完全像通常的數(shù)據(jù)值一樣書(shū)寫(xiě)。數(shù)值常量可以包括小數(shù)點(diǎn),負(fù)號(hào)和E記號(hào)。例如:1-51.231.2E230.10.5E-10。用E表示法時(shí),如2E4,它表示,或者20000。

SAS系統(tǒng)中,缺失值用小數(shù)點(diǎn)來(lái)(.)表示。2.字符常量:字符常量是由(單)引號(hào)括起來(lái)的1~200個(gè)字符組成的字符串.例如,在下面的語(yǔ)句中:

IFname=‘TOM’

THENDO;‘TOM’就是一個(gè)字符常量。如果字符常量含有引號(hào),則用兩個(gè)連續(xù)的單引號(hào)來(lái)處理。例如,字符值為T(mén)OM’S時(shí),輸入:

name=’TOM’’S’

缺失的字符常量值為空字符,表示為’’(兩個(gè)連續(xù)的單引號(hào))。二SAS變量:描述給定特征的數(shù)值集合的指標(biāo)稱(chēng)為變量。SAS變量的特征:變量名、類(lèi)型、存儲(chǔ)長(zhǎng)度、標(biāo)簽、輸入格式、輸出格式存儲(chǔ)長(zhǎng)度指變量在存儲(chǔ)時(shí)所需要的字節(jié)數(shù)。默認(rèn)情況下所有的變量都定義為8字節(jié)。字符變量的長(zhǎng)度可為1-200字節(jié),數(shù)值變量的長(zhǎng)度可為3-8字節(jié)。標(biāo)簽是對(duì)變量的補(bǔ)充說(shuō)明,可以為任意字符,長(zhǎng)度可多達(dá)257個(gè)字符。SAS數(shù)據(jù)集(部分)ObservationsVariablesValue輸入輸出格式原始數(shù)據(jù)值SAS變量的值格式化的SAS變量值Informatdollar10.Formatcomma8.548,23125JAN20041609501/25/2004InformatDate9.FormatMMDDYY10.$548,231548231Informat(輸入格式)Format(輸出格式)日期和時(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。

2004年1月25日,在系統(tǒng)中存為16095。注意:為了使數(shù)值型變量顯示日期形式,必須使用日期型的輸出格式,同樣地為了以日期形式輸入日期必須使用日期型的輸入格式。

SAS變量分為兩類(lèi),數(shù)值變量(Num)與字符變量(Char)。數(shù)值型變量只能取數(shù)值為值??梢杂姓?fù)號(hào)及小數(shù)點(diǎn)(+、-、?),但不能有逗號(hào)(,)。數(shù)值型是SAS的默認(rèn)變量類(lèi)型,默認(rèn)長(zhǎng)度為8位。字符型變量可以取字符、字母、特殊字符以及數(shù)字為值。

在DATA步中某些SAS語(yǔ)句所使用的變量名后跟一個(gè)美元符號(hào)($),即表明該變量是字符型變量,如name$或name$。如果變量后不加$符號(hào),SAS將該變量認(rèn)為數(shù)值型。因此,對(duì)字符型變量應(yīng)加$符號(hào)予以說(shuō)明。在SAS中一個(gè)字符變量的取值可以有1—200個(gè)字符長(zhǎng),默認(rèn)長(zhǎng)度為8個(gè)字符長(zhǎng)。三SAS算符

SAS算符是一些符號(hào),它們要求作比較、算術(shù)運(yùn)算或邏輯運(yùn)算。

SAS使用兩種主要類(lèi)型的算符:

前綴算符和中綴算符前綴算符用于變量、常數(shù)、函數(shù)或者用括號(hào)括起來(lái)的表達(dá)式。例如:

+Y-25-COS(A)-(x1+x2-100)

前綴算符有:加號(hào),減號(hào),NOT和符號(hào)^。中綴算符作用在算符兩邊的運(yùn)算對(duì)象上,例如6<8。中綴算符一般分為四類(lèi):算術(shù)算符、比較算符、邏輯算符和其它算符(最大、最小和連接)。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)大于<(LT)小于

>=(GE)大于等于

<=(LE)小于等于(1)算術(shù)表達(dá)式的比較考慮表達(dá)式:A<=B。如果A的值為4,B的值為3,則表達(dá)式A<=B的值為0(假);若A的值為5,B的值為9,則表達(dá)式A<=B的值為1(真);若A與B的值均為47,則表達(dá)式成立,且其值為1。(2)字符的比較比較的對(duì)象可以是數(shù)值也可以是字符,但比較的結(jié)果總是數(shù)值1(真)或0(假)。字符運(yùn)算對(duì)象在字符之間從左到右被比較。字符次序用機(jī)器排列次序確定(即按ASCII碼排列序列)。例如,表達(dá)式’GRAY’>’ADAMS’是真的,它與表達(dá)式’ANDRE,C’<’ANDRE,CLYDE’一樣,它們的值都是1。3.邏輯算符:

邏輯算符也稱(chēng)為布爾(Boolean)算符,在表達(dá)式里通常用來(lái)連接一系列比較式。邏輯算符包括:

&(AND)與;|(OR)或;^(NOT)非例如,age=25

ANDsex=‘男’或age=25

&sex=‘男’

age=25

ORsex=‘男’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í)<、<=、=、^=、>、>=、^>、^<5級(jí)&(and)6級(jí)|(or)準(zhǔn)則3:對(duì)于相同優(yōu)先級(jí)的算符,左邊的運(yùn)算先做。但有兩個(gè)例外:對(duì)第一級(jí),右邊的先做;

2**3**2

<->

2**(3**2)2)當(dāng)兩個(gè)比較算符圍著一個(gè)量時(shí),則等價(jià)于一個(gè)and運(yùn)算。例如:12<age<20

<->

12<ageandage<20一.SAS函數(shù)的定義1.SAS函數(shù)的定義:

SAS函數(shù)是一個(gè)子程序,它由0個(gè)或幾個(gè)自變量返回一個(gè)結(jié)果值。每個(gè)SAS函數(shù)都有一個(gè)關(guān)鍵詞名字。為了引用函數(shù),要寫(xiě)出它的名字,然后寫(xiě)出一個(gè)自變量或幾個(gè)自變量,它們用括號(hào)括起來(lái),這個(gè)函數(shù)對(duì)這些自變量執(zhí)行某種運(yùn)算。SAS函數(shù)的形式為:

FunctionName(argument,...)

例如:

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ù)分為17種類(lèi)型,我們需要接觸的有:算術(shù)函數(shù)、數(shù)組函數(shù)、截取函數(shù)、數(shù)學(xué)函數(shù)、概率函數(shù)、分位數(shù)函數(shù)、非中心函數(shù)、樣本統(tǒng)計(jì)函數(shù)、隨機(jī)函數(shù)、字符函數(shù)、日期時(shí)間函數(shù)等。二SAS函數(shù)的參數(shù)和結(jié)果1.SAS函數(shù)的參數(shù)1)參數(shù)的類(lèi)型:參數(shù)可以是簡(jiǎn)單的變量名、常數(shù)或者表達(dá)式。這個(gè)表達(dá)式還可以包含其它的函數(shù)。例如:

max(cash,credit)sqrt(2500)min(sum(ofx1-x10),y)2)參數(shù)的個(gè)數(shù):有些函數(shù)不需要參數(shù)(如DATE()),有些只需要一個(gè)參數(shù),有些函數(shù)是對(duì)幾個(gè)參數(shù)作分析處理。如果函數(shù)的參數(shù)是表達(dá)式,則先計(jì)算作為參數(shù)的表達(dá)式例如:LOG(x+y)這個(gè)函數(shù),是先計(jì)算x+y,然后調(diào)用對(duì)數(shù)函數(shù)LOG來(lái)計(jì)算x+y的對(duì)數(shù)。

3)參數(shù)的表示法:一般地,當(dāng)函數(shù)有幾個(gè)參數(shù)時(shí),它們之間必須用逗號(hào)(,)分隔開(kāi)。不過(guò),以下三種寫(xiě)法均是合法的:

FunctionName(OFvariable1-variablen)FunctionName(OFvariablevariable...)FunctionName(variable,variable,...)

例如:

sum(ofx1-x5)sum(ofx1x2x3x4x5)sum(x1,x2,x3,x4,x5)

是等價(jià)的。請(qǐng)問(wèn):sum(ofx1--x5)在什么情況下與上面的式子等價(jià)?2.函數(shù)的結(jié)果:函數(shù)的取值通常取決于參數(shù)的類(lèi)型,當(dāng)參數(shù)是字符型變量時(shí),函數(shù)的取值為字符;當(dāng)參數(shù)為數(shù)值型變量時(shí),函數(shù)的取值為數(shù)值。三.函數(shù)的分類(lèi)

SAS函數(shù)主要分為以下幾類(lèi):

1、數(shù)學(xué)函數(shù)

abs():求絕對(duì)值

mod(var1,var2):求var1除以var2后的余數(shù)

sqrt():求平方根值

int():取整函數(shù),截取小數(shù)部分

round(var,規(guī)定):按規(guī)定四舍五入。規(guī)定取:0.1,0.01,……log():計(jì)算以e為底的對(duì)數(shù)值

log10():計(jì)算以10為底的對(duì)數(shù)值

2、三角函數(shù)

3、概率分布函數(shù)

4、樣本統(tǒng)計(jì)函數(shù)

max():求最大值min():求最小值

mean():求均數(shù)std():求標(biāo)準(zhǔn)差

sum():求和

5、隨機(jī)函數(shù)

normal():產(chǎn)生一個(gè)正態(tài)分布的偽隨機(jī)數(shù)

rannor():產(chǎn)生一個(gè)標(biāo)準(zhǔn)正態(tài)分布的隨機(jī)數(shù)

6、字符函數(shù)

substr():從一個(gè)字符串中抽取或取代一個(gè)指定的子串

trim():去掉字符串尾部的空格

7、日期時(shí)間函數(shù)

year():從變量中抽取“年份”值

month():從變量中抽取“月份”值

day():返回變量的天數(shù)值

mdy(月,日,年):將變量轉(zhuǎn)換成日期值形式具體的函數(shù)請(qǐng)查閱:

SASOnlineHelp--->SASLanguage--->SASFunctions上機(jī)練習(xí)題1、SAS常用的窗口有哪三個(gè)?請(qǐng)?jiān)谌齻€(gè)基本窗口之間切換并記住這些命令。2、請(qǐng)?jiān)赑GM窗口中輸入如下幾行程序,提交系統(tǒng)執(zhí)行,并查看OUTPUT窗和LOG窗中內(nèi)容,注意不同顏色的含義;并根據(jù)日志窗中的信息修改完善程序。

datsex1;

inputtname$agesex;

cards;

xiaomin

191lidong20

1nana182;

prodprontdats=ex1;

run;

procprintdats=ex1;Varnameagesex;

run;第二章結(jié)束第三章DATA步及其語(yǔ)句

為了利用SAS系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行分析,必須將數(shù)據(jù)轉(zhuǎn)化為SAS數(shù)據(jù)集的形式。SAS系統(tǒng)提供了功能很強(qiáng)的數(shù)據(jù)管理模塊,通過(guò)數(shù)據(jù)步(DATASTEP)實(shí)現(xiàn)對(duì)數(shù)據(jù)的管理。數(shù)據(jù)步在SAS系統(tǒng)中具有十分重要的地位,概括起來(lái)其內(nèi)容主要有:錄入數(shù)據(jù)并轉(zhuǎn)化為SAS數(shù)據(jù)集;編輯數(shù)據(jù),包括檢查和修改數(shù)據(jù)中的錯(cuò)誤、計(jì)算新變量等;將數(shù)據(jù)寫(xiě)入磁盤(pán);對(duì)已有的數(shù)據(jù)集進(jìn)行管理。如取子集、合并及更新數(shù)據(jù)集等。學(xué)習(xí)和掌握好SAS數(shù)據(jù)集是用SAS系統(tǒng)分析數(shù)據(jù)的前提,因此必須熟練掌握SAS數(shù)據(jù)集的有關(guān)操作?!?SAS數(shù)據(jù)步(DATASTEP)例1:DATA

da1;

INPUT

x1x2x3;

y=x1+x2+x3;

CARDS;

31.20.522.40.953.20.80.6;

RUN;

以上這些語(yǔ)句組成DATA步。提交后,SAS系統(tǒng)創(chuàng)建一個(gè)名為da1的SAS數(shù)據(jù)集。它包含5個(gè)觀測(cè)、4個(gè)變量。DATA步是用DTAT語(yǔ)句開(kāi)始的一組SAS語(yǔ)句。用于DATA步的SAS語(yǔ)句共有50多個(gè),一般按性質(zhì)可分為三類(lèi):

1、可執(zhí)行語(yǔ)句(X),它是可以產(chǎn)生某種操作的語(yǔ)句。

INPUT語(yǔ)句,賦值語(yǔ)句(如,y=x1+x2)等;

2、定位語(yǔ)句(P),它們?cè)趫?zhí)行時(shí)并不產(chǎn)生任何操作,但它們?cè)跀?shù)據(jù)步中具有重要地位。

DATA語(yǔ)句,CARDS語(yǔ)句等;

3、說(shuō)明語(yǔ)句(D),用于給系統(tǒng)提供附加的信息,它們?cè)跀?shù)據(jù)步中的地位通常并不重要。

FORMAT語(yǔ)句,INFORMAT語(yǔ)句等;

利用SAS系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,必須以SAS數(shù)據(jù)集為基礎(chǔ)。因而在進(jìn)行分析之前必須先將要處理的數(shù)據(jù)按SAS系統(tǒng)的格式存放在一個(gè)數(shù)據(jù)文件中,這個(gè)過(guò)程就是建立SAS數(shù)據(jù)集。

SAS數(shù)據(jù)集實(shí)質(zhì)上是一張關(guān)系型數(shù)據(jù)表,即通常所見(jiàn)到的二維表格,一行表示一個(gè)觀察(Observation),一列表示一個(gè)變量(Variable),行列的交叉點(diǎn)就是該觀察在該變量上的取值。參見(jiàn)下頁(yè)示意圖?!?SAS數(shù)據(jù)集的建立SAS數(shù)據(jù)集(部分)ObservationsVariablesValueSAS數(shù)據(jù)集分為兩類(lèi):一類(lèi)是臨時(shí)數(shù)據(jù)集,另一類(lèi)是永久數(shù)據(jù)集。一.臨時(shí)數(shù)據(jù)集的建立

以單個(gè)詞作為名字的SAS數(shù)據(jù)集稱(chēng)為臨時(shí)數(shù)據(jù)集。在SAS系統(tǒng)運(yùn)行期間,臨時(shí)數(shù)據(jù)集一經(jīng)建立,則該臨時(shí)數(shù)據(jù)集一直存在;如果用戶(hù)退出SAS系統(tǒng),則臨時(shí)數(shù)據(jù)集立即被刪除。用戶(hù)重新進(jìn)入SAS系統(tǒng)后則不能再調(diào)用這些已被刪除的臨時(shí)數(shù)據(jù)集了。根據(jù)數(shù)據(jù)的存在形式,臨時(shí)數(shù)據(jù)集的建立可分為以下幾種情況:1.數(shù)據(jù)在作業(yè)流中

例1就是直接用SAS語(yǔ)句從作業(yè)流中輸入數(shù)據(jù),從而建立所需要的SAS數(shù)據(jù)集的一個(gè)例子。一般的形式如下:DATA語(yǔ)句;INPUT語(yǔ)句;(用于DATA步的其它SAS語(yǔ)句)CARDS語(yǔ)句;[數(shù)據(jù)行];RUN;2.數(shù)據(jù)在外部文本文件中例2:在‘c:\txt’子目錄下存放有一個(gè)名為id.txt的文件,內(nèi)容如下:(第一列為姓名,第二列為電話)欲用上述數(shù)據(jù)來(lái)建立一個(gè)SAS數(shù)據(jù)集,可用下面的DATA步來(lái)完成:

DATA

da2;

INFILE

‘c:\txt\id.txt’;

INPUT

name$phone;

RUN;Jinhua 48332728jianghon 47586978taoxian 23459734zhaoheng 85743627shanmei 12395863xuli 74857362xinwei 23485748

從外部文本文件中讀入數(shù)據(jù)來(lái)建立SAS數(shù)據(jù)集的一般形式為:

DATA語(yǔ)句;

INFILE語(yǔ)句;

(用于DATA步的其它SAS語(yǔ)句) RUN語(yǔ)句;這里,需要注意兩點(diǎn):不需要CARDS語(yǔ)句。INFILE語(yǔ)句的作用是打開(kāi)一個(gè)外部文本文件,其格式為:

INFILE’文件說(shuō)明’;這里,文件說(shuō)明是指所要引用的外部文件所在的磁盤(pán)路徑和文件全名,應(yīng)用單引號(hào)將文件說(shuō)明括起來(lái)。對(duì)于這個(gè)‘文件說(shuō)明’,我們還可以采用下面的方式來(lái)處理:

m

’n:\txt\id.txt’;Datada2;Infile

m;inputname$phone;run;

在這段程序中,語(yǔ)句的作用是規(guī)定了一個(gè)文件標(biāo)記m

,并用它來(lái)表示外部文件id.txt的全路徑文件名。只要在程序中用語(yǔ)句作了這樣的定義,就可以在程序的任何位置用m來(lái)引用這個(gè)外部文件id.txt了。可以看出,infile’n:\txt\id.txt’;與

m

’n:\txt\id.txt’;

infile

m;

這兩句起著同樣的作用。3.數(shù)據(jù)來(lái)自其它SAS數(shù)據(jù)集例3:datada3;Setda1;/*da1是已經(jīng)存在的SAS數(shù)據(jù)集*/ifx1<=5;/*選擇x1小于或等于5的觀測(cè)*/run;從一個(gè)或幾個(gè)已存在的SAS數(shù)據(jù)集產(chǎn)生新的SAS數(shù)據(jù)集的DATA步的一般形式為:

DATA語(yǔ)句;

SET|MERGE;

(用于DATA步的其它SAS語(yǔ)句) RUN;這里,SET、MERGE語(yǔ)句用來(lái)識(shí)別已存在的SAS數(shù)據(jù)集。豎條“|”表示用戶(hù)可以使用這些語(yǔ)句中的一個(gè)。

綜上所述,數(shù)據(jù)集的建立是通過(guò)數(shù)據(jù)步來(lái)實(shí)現(xiàn)的。每個(gè)數(shù)據(jù)步開(kāi)頭的DATA語(yǔ)句標(biāo)志數(shù)據(jù)步的開(kāi)始,其它的語(yǔ)句稱(chēng)為程序語(yǔ)句,因?yàn)镾AS把它們轉(zhuǎn)換為機(jī)器語(yǔ)言,每次通過(guò)DATA步來(lái)執(zhí)行它們。SAS通過(guò)INPUT、SET、MERGE等語(yǔ)句讀入每一個(gè)觀測(cè)。通常,在原始數(shù)據(jù)含有多個(gè)觀測(cè)的情況下,系統(tǒng)將重復(fù)執(zhí)行這些程序語(yǔ)句直到把輸入數(shù)據(jù)讀入完畢。程序語(yǔ)句還可能含有讓DATA步的一些語(yǔ)句執(zhí)行很多次的語(yǔ)句,例如DO循環(huán)語(yǔ)句等。若數(shù)據(jù)步中不包含INPUT、SET、MERGE語(yǔ)句,則程序語(yǔ)句只執(zhí)行一次。SAS系統(tǒng)為每個(gè)DATA步設(shè)置了一個(gè)自動(dòng)變量_N_,它的值表示這個(gè)DATA步已經(jīng)執(zhí)行的次數(shù)。在DATA步的程序語(yǔ)句中可以使用這個(gè)變量。例如:datada1;inputx1x2x3;y=x1+x2+x3;cards;

31.20.522.40.953.20.80.6;Run;

這些語(yǔ)句要求SAS產(chǎn)生一個(gè)名為da1的數(shù)據(jù)集,從輸入數(shù)據(jù)行讀3個(gè)數(shù)值給相應(yīng)的3個(gè)變量,并建立第四個(gè)變量y。在讀入數(shù)據(jù)時(shí),SAS將變量x1,x2,x3視為一個(gè)程序數(shù)據(jù)向量,按INPUT語(yǔ)句的指示讀當(dāng)前記錄的數(shù)據(jù)值,然后又執(zhí)行程序語(yǔ)句,把y的值添加到程序程序數(shù)據(jù)向量中去。因此,對(duì)這個(gè)DATA步而言,程序數(shù)據(jù)向量包含4個(gè)變量:x1,x2,x3,y。當(dāng)最后一個(gè)程序語(yǔ)句執(zhí)行后,在程序數(shù)據(jù)向量中的這些值(即一個(gè)觀測(cè))自動(dòng)地輸送到正被創(chuàng)建的數(shù)據(jù)集da1中,然后SAS返回去再執(zhí)行DATA步。我們這個(gè)例子中共有5行數(shù)據(jù),則這個(gè)DATA步將執(zhí)行5次,數(shù)據(jù)集da1中包含5個(gè)觀測(cè),每個(gè)觀測(cè)有4個(gè)變量。二.建立數(shù)據(jù)集的相關(guān)語(yǔ)句1.DATA語(yǔ)句

DATA語(yǔ)句表示一個(gè)數(shù)據(jù)步的開(kāi)始,并給出正被創(chuàng)建的SAS數(shù)據(jù)集的名字。語(yǔ)句格式:

DATA[data-set-name-1[data-set-options-1]]...

其中:

data-set-name:表示在這個(gè)DATA步中將要建立的數(shù)據(jù)集名字,可以是一個(gè)或多個(gè)。

Data-set-options:告訴系統(tǒng)關(guān)于正被創(chuàng)建的這個(gè)數(shù)據(jù)集的更多信息。這些選項(xiàng)用括號(hào)括起來(lái)并跟在相應(yīng)的數(shù)據(jù)集名字的后面。例如:

datanew(drop=y);/*列出不包含在數(shù)據(jù)集中的變量y*/

datanew(keep=x1x2);/*列出包含在數(shù)據(jù)集中的變量x1,x2*/datanew(label=‘healthclubdata’);/*給數(shù)據(jù)集一個(gè)附加標(biāo)簽*/

datanew(rename=(x1=ux2=v));/*把new中的變量x1,x2更名為u,v*/DATA語(yǔ)句中數(shù)據(jù)集名的選擇:1)省略數(shù)據(jù)集名:如:

data;

這時(shí),系統(tǒng)仍建立一個(gè)數(shù)據(jù)集,并將自動(dòng)地把一個(gè)作業(yè)中所建立的第一個(gè)數(shù)據(jù)集命名為data1,第二個(gè)數(shù)據(jù)集命名為data2,...等等。2)使用單個(gè)詞(單水平)的名字:例如:

dataone;

表示建立一個(gè)名為one的臨時(shí)數(shù)據(jù)集。多個(gè)數(shù)據(jù)集名字的使用1)建立觀測(cè)子集假如有n個(gè)觀測(cè)數(shù)據(jù),它們是1981,1982,1983這三年中記錄的一些資料,我們想把每一年的資料獨(dú)立構(gòu)成一個(gè)數(shù)據(jù)集進(jìn)行分析處理,使用下面的語(yǔ)句:data

year81

year82year83;inputyearx1-x20;ifyear=1981thenoutput

year81;elseifyear=1982thenoutput

year82;elseifyear=1983thenoutput

year83;cards;數(shù)據(jù)行;2)建立變量子集如果我們想創(chuàng)建幾個(gè)包含不同變量組的子集,可以使用數(shù)據(jù)集的選項(xiàng)來(lái)實(shí)現(xiàn)。例如:dataone(keep=yearx1-x5)two(keep=yearx6-x20)three(drop=x13);inputyearx1-x20;cards;數(shù)據(jù)行;2.INPUT語(yǔ)句:描述一個(gè)輸入記錄中數(shù)值的排列情況,同時(shí)給相應(yīng)的變量賦予輸入值。INPUT語(yǔ)句只能用來(lái)讀入跟在CARDS語(yǔ)句之后的數(shù)值或存放在外部文件中的數(shù)據(jù)。如果數(shù)據(jù)已經(jīng)在一個(gè)SAS數(shù)據(jù)集中,則要使用SET、MERGE、UPDATE或MODIFY語(yǔ)句。

INPUT語(yǔ)句有:表輸入(自由輸入)、列輸入、格式化輸入等方式。我們只介紹表輸入方式:語(yǔ)句格式

INPUTvariable-name-list[$][@@];

這里,$用來(lái)指出它前面的變量是字符型的。如果省略$,則默認(rèn)前面的變量為數(shù)值變量。至于[@@]這個(gè)記號(hào),我們放在后面去討論。

溫馨提示

  • 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)論