版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Page 2目錄目錄第一章:SAS系統(tǒng)初識第二章:SAS函數(shù)第三章:SAS訪問外部數(shù)據(jù)文件第四章:SAS數(shù)據(jù)步第五章:SAS過程步第六章:SAS輸入輸出格式第七章:SAS宏技術(shù)第八章:SAS SQL查詢第九章:SAS 數(shù)據(jù)統(tǒng)計分析第十章:SAS 綜合運用舉例n 第一章第一章Page 3SAS 系統(tǒng)初識Page 4SASSAS系統(tǒng)誕生系統(tǒng)誕生 l 全稱為Statistics Analysis System,最早由北卡羅來納大學(xué)的兩位生物統(tǒng)計學(xué)研究生編制 l 1972研制出第一版,1976年成立了SAS軟件研究所,正式推出了SAS軟件,現(xiàn)在是9.2版 l 是用于數(shù)據(jù)分析與決策支持的大型集成信息系統(tǒng)
2、,統(tǒng)計分析功能是它的重要組成部分和核心功能 l 國際上的標(biāo)準軟件系統(tǒng) Page 5l BASE SAS模塊 l SAS/STAT-統(tǒng)計分析模塊 l SAS/ETS-經(jīng)濟計量學(xué)和時間序列分析模塊 l SAS/OR-運籌學(xué)模塊 l SAS/QC-質(zhì)量控制模塊 l SAS/IML-交互式矩陣程序設(shè)計語言模塊 l SAS/GRAPH-繪圖模塊 l SAS/FSP-快速數(shù)據(jù)交互式菜單系統(tǒng)模塊 l SAS/AF-交互式應(yīng)用開發(fā)模塊 l SAS/ASSIT-菜單驅(qū)動界面模塊 l SAS/ACCESS-訪問外部數(shù)據(jù)模塊l SAS/EIS-企業(yè)信息系統(tǒng)模塊l SAS/INSIGHT-可視化探索工具模塊l SAS
3、/CALC-電子表格模塊l SAS/CONNECT-分布式數(shù)據(jù)處理模塊l SAS/WA-企業(yè)級數(shù)據(jù)倉庫管理模塊l SAS/EM-企業(yè)級數(shù)據(jù)挖掘模塊SASSAS功能模塊功能模塊Page 6命令行菜單欄工具欄窗口條功能窗口SAS工作界面*-重要功能鍵:F1,F5,F6,F7, F9,CTL+ESASSAS工作界面工作界面Page 7SASSAS兩類菜單欄兩類菜單欄n菜單欄的下拉菜單n n n操作:點菜單欄中的按鈕n彈出菜單n操作:相應(yīng)窗口點鼠標(biāo)右鍵Page 8SASSAS工具欄工具欄 資源管理器窗口工具欄 編輯器窗口工具欄 Page 9SASSAS 命令命令 在命令行中輸入SAS命令可以快速完成一
4、些SAS任務(wù) Page 10SASSAS主要功能窗口主要功能窗口 l 以“只顯示內(nèi)容”視圖顯示的“SAS 資源管理器”窗口(沒有樹視圖)l “結(jié)果”窗口l 程序編輯器、增強型編輯器l “日志”窗口l “輸出”窗口l “SAS 資源管理器”窗口Page 11SASSAS資源管理器窗口資源管理器窗口n SAS 資源管理器窗口下,可以執(zhí)行基本的 SAS 任務(wù):1、 創(chuàng)建新的邏輯庫和文件快捷方式;2、創(chuàng)建新的邏輯庫成員和目錄條目;3、打開和編輯 SAS 文件。根據(jù)操作環(huán)境,可以使用以下方法打開“SAS 資源管理器”窗口(打開樹視圖和列表視圖):1、菜單: 查看= SAS 資源管理器 2、命令: EXP
5、LORER3、工具欄: SAS 資源管理器 Page 12SASSAS結(jié)果窗口結(jié)果窗口 可以通過結(jié)果窗口對程序的輸出結(jié)果進行瀏覽和管理 1、SAS可以用一種或多種格式(或類型)產(chǎn)生輸出。2、默認類型是“列表”輸出(如右圖的“查詢結(jié)果”)。3、其他輸出類型包括 HTML、“輸出數(shù)據(jù)集”和 PostScript。 Page 13SASSAS 輸出類型設(shè)置輸出類型設(shè)置 要設(shè)置輸出類型,可使用菜單欄=工具=選項=參數(shù)選擇=“結(jié)果”標(biāo)簽,進入?yún)?shù)選擇窗口進行設(shè)置如下圖所示。 點選創(chuàng)建HTML時,輸出結(jié)果同時展現(xiàn)在HTML文件中。Page 14SASSAS增強型編輯器窗口增強型編輯器窗口SAS9.1版本的
6、默認編輯窗口為增強型。它比普通編輯窗口增加了如下功能: l 使用特定顏色對SAS程序、SCL程序以及HTML和XML文件的元素進行顯示,同時進行相關(guān)語法檢查。l 創(chuàng)建和格式化自定義的關(guān)鍵詞。l 每個過程步、數(shù)據(jù)步或者宏的程序段都可以實現(xiàn)展開和收縮的功能,以便對SAS程序的宏觀結(jié)構(gòu)有更好的了解。l 通過定義縮寫來快速輸入一段文字。l 通過顯示行號使得程序代碼更具可讀性。l 設(shè)定增強型編輯器的快捷功能鍵。l 同時打開一個文件的多個視圖。l 將光標(biāo)停留在語言元素上,按F1就可以直接進入到SAS幫助文檔中該語言元素的說明部分,當(dāng)然有時候該語言元素有多個主題,可以根據(jù)需要進行選擇。Page 15SASS
7、AS日志窗口日志窗口n“日志”窗口用來查看程序運行信息:l 提交的程序語句; l 系統(tǒng)消息和錯誤;l 程序運行速度和時間。 n“日志”窗口中的元素根據(jù)以下類型呈現(xiàn)不同的顏色:l 程序行黑色:以語句標(biāo)號開始;l 提示藍色:以NOTE開始;l 警告綠色:以WARNING開始;l 錯誤紅色:以ERROR開始。Page 16SASSAS 輸出窗口輸出窗口 proc print data=sashelp.class;quit;按F8提交程序,SAS界面如下所示: 輸出窗口用來查看SAS程序的輸出結(jié)果 Page 17SASSAS新建邏輯庫新建邏輯庫 1、在邏輯庫級別,在空白處按右鍵,選擇新建,出現(xiàn)如下界面
8、。2、在名稱中輸入新的邏輯庫名稱。3、在引擎中根據(jù)數(shù)據(jù)來源選擇不同的引擎,如果只是想建立本機地址上的一個普通的SAS數(shù)據(jù)集數(shù)據(jù)庫,可以選擇默認。4、然后點選啟動時啟用,在邏輯庫信息中,點選路徑后面的瀏覽按鈕,選擇與這個邏輯庫相對應(yīng)的物理地址。選項窗口可以不填,點擊確定產(chǎn)生一個新的邏輯庫。Page 18SASSAS程序編輯窗口操作程序編輯窗口操作提交程序可以用增強型編輯器編寫程序,也可以將用其它文本編寫的程序拷貝到編輯器。程序完成后,直接按F3或者F8提交程序,或點選工具條中的提交按鈕,或者在命令框中輸入Submit命令。儲存程序程序可以保存為其它格式的文本,也可以直接以編輯器的方式來儲存,直接
9、點選文件=保存,選擇路徑就可以保存這些程序。Page 19SASSAS數(shù)據(jù)集導(dǎo)入和導(dǎo)出數(shù)據(jù)集導(dǎo)入和導(dǎo)出第一步:點選文件=導(dǎo)出數(shù)據(jù),出現(xiàn)如下界面,要求輸入要導(dǎo)出文件的邏輯庫名稱和數(shù)據(jù)文件名稱,比如要導(dǎo)出sashelp邏輯庫的class數(shù)據(jù)文件,通過下拉菜單選擇邏輯庫和數(shù)據(jù)文件。 Page 20SASSAS數(shù)據(jù)集導(dǎo)入和導(dǎo)出數(shù)據(jù)集導(dǎo)入和導(dǎo)出 第二步:點選next,進入到選擇輸出格式界面。通過下拉菜單選擇給定的格式:Microsoft Excel 97,2000 or 2002 workbook,然后點選next.Page 21SASSAS數(shù)據(jù)集導(dǎo)入和導(dǎo)出數(shù)據(jù)集導(dǎo)入和導(dǎo)出 第三步:進入到設(shè)定輸出文件位
10、置和名稱界面,通過瀏覽按鈕選擇輸出位置,并鍵入輸出文件的名稱,如E:test.xls .Page 22SASSAS數(shù)據(jù)集導(dǎo)入和導(dǎo)出數(shù)據(jù)集導(dǎo)入和導(dǎo)出 第四步:點選ok,進入到SAS Export Wizard畫面,SAS Export Wizard和后面要介紹的Import Wizard是SAS轉(zhuǎn)換數(shù)據(jù)文件的工具。在這個畫面中,Export Wizard要求對這個輸出過程的table命名,這時可以直接選finish完成輸出,或者命名為1。Page 23SASSAS數(shù)據(jù)集導(dǎo)入和導(dǎo)出數(shù)據(jù)集導(dǎo)入和導(dǎo)出 第五步:如果上一步選擇命名,SAS會建立一段與上述窗口操作相同的程序,并提示是否要保存這段程序。SA
11、SSAS對數(shù)據(jù)的管理對數(shù)據(jù)的管理 1:SAS對數(shù)據(jù)的分析與呈現(xiàn)都是面對SAS數(shù)據(jù)集進行2:SAS數(shù)據(jù)集是一種SAS文件3:SAS文件是由SAS系統(tǒng)創(chuàng)建和管理的有特殊結(jié)構(gòu)的文件。Page 25SASSAS對外部數(shù)據(jù)的管理對外部數(shù)據(jù)的管理 數(shù)據(jù)直接輸入流行的數(shù)據(jù)庫其它文件格式SAS數(shù)據(jù)集SAS應(yīng)用程序數(shù)據(jù)分析過程中用得較少數(shù)據(jù)挖掘過程中用得較多常用的數(shù)據(jù)分析獲取外部數(shù)據(jù)TXTEXCELCSVSPSSACCESS ; DB2 ; ORACLE Page 26SASSAS 邏輯庫邏輯庫 26nSAS邏輯庫由一組SAS文件組成。SAS軟件系統(tǒng)的信息組織有兩層,第一層是SAS邏輯庫,第二層是SAS文件。n
12、SAS邏輯庫是一個邏輯概念,本身不是物理實體,它對應(yīng)的實體是操作系統(tǒng)下一個文件夾或幾個文件夾中的一組SAS文件。 nSAS邏輯庫文件用兩級命名方式定名: libname.SAS-filenamen (庫標(biāo)記.文件名)SAS數(shù)據(jù)集SAS數(shù)據(jù)庫nSAS邏輯庫有永久庫和臨時庫兩種n臨時庫:名為WORK,系統(tǒng)自動指定n永久庫:系統(tǒng)自動指定名為SASUSER,(SASHELP等). 其它可由用戶指定Page 27SASSAS 創(chuàng)建邏輯庫創(chuàng)建邏輯庫 邏輯庫名是SAS名,長度不能超過8個字節(jié)。如SAS邏輯庫:ResDat, SASHELP等。建立SAS邏輯庫的方法:l 用菜單操作;用菜單操作;l 用LIBN
13、AME語句。語句格式:LIBNAME libref SAS-data-library 語法說明:Libref 邏輯庫名 SAS-data-library 邏輯庫對應(yīng)的物理地址Engine 引擎名稱(缺失時為默認引擎)例例1 用用LIBNAME語句創(chuàng)建語句創(chuàng)建SAS邏輯庫。邏輯庫。libname zkxr C:Documents and Settingsuser桌面中科信軟SAS培訓(xùn)邏輯庫a;例例2 引用非臨時庫的SAS文件時必須使用兩級命名方式,而引用臨時庫的SAS文件時,可以直接使用文件名,效果等同于work.文件名。data zkxr.a;set d.v;run;Page 28SASSAS
14、 語句語句SAS語句就是一系列關(guān)鍵詞、SAS名稱、算符以及特殊字符的組合。所有的SAS語句以分號結(jié)尾。SAS語句一般分為數(shù)據(jù)步語句與過程步語句,以及可以用在SAS程序任何地方的全局通用語句。KEYWORD parameteroptions;關(guān)鍵詞關(guān)鍵詞 參數(shù) 選項;其中:粗體-必須按顯示形式書寫的關(guān)鍵詞;白正體-用戶提供的信息;-括號內(nèi)的信息可選;|-任選。參數(shù)PARAMETER不是任選項,不用括號,OPTIONS是選項關(guān)鍵詞。Page 29SASSAS語名舉例語名舉例 例例2.5 有效的有效的SAS語句。語句。data data1; /* data為關(guān)鍵詞,data1為SAS名 */data
15、 _null_; /* _null_為SAS名 */put name $ 8.; /* put為關(guān)鍵詞,name為SAS名,$8.為輸出格式*/format date yymmdd10.;proc means data=ResDat.class; /* proc為關(guān)鍵詞,means為過程名 */infile “d:ResDatclass.txt”;do I=1 to 100;x=y+1; sumx+x;run;Page 30SASSAS optionsoptions選項選項 n 系統(tǒng)選項用來控制SAS的運行方式,如SAS系統(tǒng)啟動,硬件軟件的連接,SAS程序的運行等。 n 語句格式:n OPTI
16、ONS option(s); n option 設(shè)定一個或多個系統(tǒng)選項,任何系統(tǒng)選項都有一個默認設(shè)置。n 例例: 設(shè)定選項設(shè)定選項n OPTIONS obs=5;/*取數(shù)據(jù)集前五個觀測*/n Data one;n Set ResDat.class;n Run;Page 31SASSAS 表達式表達式 n 表達式由一系列操作符和操作對象構(gòu)成,產(chǎn)生一個目標(biāo)值。n 使用表達式可以對變量作變換和賦值,創(chuàng)建新變量,計算新數(shù)值以及控制條件語句的運行等。n 操作對象有:操作對象有:n 變量;n 常數(shù)。操作符包括:操作符包括:l 算術(shù)算符;l 比較算符;l 邏輯算符;l SAS函數(shù);l 括號。Page 32S
17、ASSAS 常數(shù)常數(shù) n SAS常數(shù)是SAS系統(tǒng)可以識別的一些固定值。1.數(shù)值常數(shù)。數(shù)值常數(shù)。1, 5, 1.23, 1.2E23, 2E4 , 20000數(shù)值常數(shù)可以有多種格式展示。標(biāo)準格式標(biāo)準格式:1,01,+1,-1,1.1;科學(xué)計數(shù)法:科學(xué)計數(shù)法:1.1e11, 1.2e-12;十六進制格式:十六進制格式:1cx,12x,9x2.引用帶引號的字符常數(shù)。引用帶引號的字符常數(shù)。name=TOM”S;name=”TOMS”; /*例中,兩語句等價。*/要注意的是,字符常數(shù)是由引號括起來的,但是字符變量的名稱則沒有引號,也就是說字符常數(shù)不能作為字符變量的名稱。3.引用日期時間常數(shù)。引用日期時間
18、常數(shù)。1jan2000d; 01jan00d;9:25t; 18jan00:9:27:25dtif begin=01JAN2000d then end=31DEC2000d; Page 33SASSAS 算符算符 n SAS算符是一些符號,其作用是進行計算、比較等。算術(shù)算符應(yīng)用。data;X=3.5*2.5; put X=;Y=9+1/3;put Y=;X=.;Y=1+X;put Y=; /*Y也是缺失值*/run;X=22.917651494Y=9.3333333333Y=.比較算符應(yīng)用。if xy then c5;else c12;比較算符經(jīng)常出現(xiàn)在IF語句里。比較準則:l 數(shù)值和字符都可
19、以比;l 結(jié)果為真賦值1,假賦值0;l 字符值從左到右逐個按ASCII碼排列序列進行比較;l 缺失值參加比較時,它比任何有效值都小。Page 34SASSAS 算符算符 邏輯算符 算符等價形式含義AND與| OR或 NOT非字符串連接符:包括| !等data _null_;a= 中 華;b=人 民 ;c= 共和 國;x1=a|b|c;x2=abc;x3=a!b!c;put x1;put x2;put x3;run; 輸出結(jié)果:中 華人 民 共和 國中 華人 民 共和 國中 華人 民 共和 國n 可以看到這些連接符輸出結(jié)果完全一致,只是單純的連接,不會對空格進行特殊處理。但有時需要對空格進行處理
20、。常用的字符連接函數(shù)包括以下幾個:常用的字符連接函數(shù)包括以下幾個:n trim() :去掉字符串尾部空格,如果字符串為空,則返回一個空格n left() :把字符串開頭的空格移到尾部n strip(): 去掉字符串開頭和結(jié)尾的所有空格n cat() :與|作用類似,保留首尾全部空格n catt() :但是連接之前會去掉各字符串尾部空格,相當(dāng)于連接符結(jié)合trim()使用n cats() :但是連接之前會去掉首尾全部空格,相當(dāng)于連接符結(jié)合strip()使用n catx() :但是連接之前會去掉首尾全部空格,并且在字符串之間加上一個指定的字符串Page 35SASSAS 算符連接函數(shù)算符連接函數(shù) n
21、 data _null_;a= 中 華;b=人 民 ;c= 共和 國;x1=trim(a)|trim(b)|trim(c);x2=left(a)left(b)left(c);x3=strip(a)!strip(b)!strip(c);x4=cat(a,b,c);x5=catt(a,b,c);x6=cats(a,b,c);x7=catx(我愛,a,b,c);put x1=/x2=/x3=/x4=/x5=/x6=/x7=;run;Page 36SASSAS 算符連接函數(shù)算符連接函數(shù) x1=中 華人 民 共和 國x2=中 華 人 民 共和 國x3=中 華人 民共和 國x4=中 華人 民 共和 國x5
22、=中 華人 民 共和 國x6=中 華人 民共和 國x7=中 華我愛人 民我愛共和 國Page 37SASSAS 變量變量 nSAS變量分為數(shù)值變量和字符變量。n數(shù)值變量n數(shù)值變量是SAS系統(tǒng)以浮點(floating-point)方式存儲的數(shù)據(jù)變量,數(shù)值變量包括日期和時間。n數(shù)值變量的值只能是數(shù)值。 n字符變量n字符變量可以由阿拉伯字母、數(shù)字0-9以及其它一些特殊字符組成。n字符變量的值可以是字符、字母、特殊字符和數(shù)值。字符變量名后跟一個美元號($)表示該變量是字符型而不是數(shù)值型。Page 38SASSAS 創(chuàng)建變量的方式創(chuàng)建變量的方式 使用賦值語句 Data a; x=1; run; /*數(shù)據(jù)
23、集a中有個變量x,值為1*/ 使用INPUT語句 Data b; Input x $; Datalines; Aaa Bbb ; Run; 使用FORMAT 或 INFORMAT語句 Data b; Set b; Informat y $9.; Run;以類似的方式創(chuàng)建變量的還有LENGTH語句,ATTIRB語句。Page 39SASSAS n輸出格式format是SAS用來確定如何輸出或?qū)懗鰯?shù)據(jù)值的指令,用FORMAT控制數(shù)據(jù)值在輸出時所使用的格式。n輸入格式informat是SAS用來確定如何將數(shù)據(jù)讀入變量的指令。n如果在輸入或輸出數(shù)據(jù)集的過程中沒有設(shè)定變量的輸入和輸出格式,系統(tǒng)會自動使用
24、原數(shù)據(jù)集中的這個變量原有的輸入輸出格式。語句格式:format. informat. 格式說明:$指定為字符格式,如果該項空缺,則默認是數(shù)值格式format規(guī)定有效SAS輸出格式Informat規(guī)定有效SAS輸入格式w設(shè)定輸入輸出的長度,一般來說是數(shù)據(jù)所占的列的數(shù)目d設(shè)定數(shù)值數(shù)據(jù)中小數(shù)點的位數(shù)Page 40SAS SAS 變量類型轉(zhuǎn)換變量類型轉(zhuǎn)換nA.字符型變量轉(zhuǎn)換為數(shù)值型變量n1. 將字符型變量進行算術(shù)運算;n2. INPUT(數(shù)據(jù)源, 輸入格式);nB.數(shù)值型變量轉(zhuǎn)換為字符型變量n1.將數(shù)值型和字符型變量連接;n2.使用函數(shù)如SUBSTR,left,right等;n3. PUT(數(shù)據(jù)源,
25、輸出格式);data a;input x 6. y $8.;cards;12345 456442322 121133311 1345.3;run;/*A.字符型變量轉(zhuǎn)為數(shù)值型變量*/data a;set a;z1=y+0;z2=input(y,8.);run;/*B.數(shù)值型變量轉(zhuǎn)為字符型變量*/data a;set a;m1=a|x;m2=left(x);m3=put(x,$8.);run;變量列表縮寫備注X1 X2 XnX1-XnX1Xn的所有變量,中間是一橫XA XB XYX: 取所有以X為開頭的變量假設(shè)數(shù)據(jù)集中有六個變量:X Y Z A B C被先后輸入,分析過程中,只分析前四個變量.X
26、-A XA的所有變量,中間是兩橫X_numeric_A XA的所有數(shù)值型變量X_character_A XA的所有字符型變量_numeric_ SAS數(shù)據(jù)集內(nèi)所有的數(shù)值型變量_character_ SAS數(shù)據(jù)集中所有的字符型變量_ALL_ SAS數(shù)據(jù)集中的所有變量_N_ 預(yù)測序號Page 41SAS SAS 自動變量自動變量data b;set a;keep _numeric_;run;data c;set a;keep _character_;run;/* 只保留數(shù)據(jù)集中的數(shù)值變量*/* 只保留數(shù)據(jù)集中的字符變量*/Page 42SASSAS 程序書寫規(guī)則程序書寫規(guī)則 nSAS語句的書寫規(guī)則
27、靈活自由:語句可在行的任一列開始;一個語句可以分寫為多行;多個語句可以寫在同一行;語句中各項之間至少用一個空格或特殊字符隔開;n應(yīng)遵守的書寫規(guī)則:不同程序步間留空行;每條語句都要另起行。比較規(guī)范的書寫有助于閱讀和檢查,還可以減少書寫錯誤。n注釋語句的兩種格式:/* 注釋內(nèi)容 */ * 注釋內(nèi)容;Page 43第二章第二章 SAS函數(shù)Page 44SAS 函數(shù)定義 SAS函數(shù)是一個子程序,對自變量返回一個結(jié)果值。SAS函數(shù)的形式:函數(shù)名(X1, X2, )函數(shù)用于組合表達式可以簡化編程和統(tǒng)計計算例:表達式中用函數(shù)。data a(keep=date y d min); /*保留date, y, d
28、, min四個變量*/set ResDat.idx000001;y=year(date); /*函數(shù)year給出變量date年份*/d=weekday(date); /*函數(shù)weekday給出變量date在一周內(nèi)的哪一天*/min=min(sum(oppr, hipr, lopr,clpr),1000); run;Page 45SASSAS 例 用與不用SAS函數(shù)時的程序。在不用SAS函數(shù)的情況下:totx=xl+x2+x3+x4+x5+x6+x7+x8+x9+x10; if totx1996; /* Where語句中使用Year函數(shù) *run;Page 46SASSAS 函數(shù)自變量函數(shù)自變量
29、 自變量類型: 變量名; 常數(shù); 函數(shù); 表達式。例 函數(shù)及其自變量類型舉例。 函數(shù)舉例自變量類型Max(X,Y);變量名X,YX=Repeat(-, 20);常數(shù)LeastMin(sum(of x1-x10),y);變量名和函數(shù)Page 47SASSAS 函數(shù)自變量函數(shù)自變量 自變量個數(shù): 有些函數(shù)不需要自變量,有些只需要一個自變量,有些函數(shù)有多個自變量。SAS9.1中,自變量個數(shù)不能超過32767。 如果函數(shù)的自變量是表達式,在函數(shù)被調(diào)用之前,所有表達式自變量首先計算。自變量表示法:當(dāng)函數(shù)有多個自變量時,必須用逗號分隔開。自變量名縮寫方法: 函數(shù)名(OF變量名1變量名n ) Page 48
30、SASSAS 函數(shù)自變量函數(shù)自變量 例 正確與錯誤的表示方法。例 數(shù)組元素自變量的縮寫方法。array y10 y1-y10; /*定義數(shù)組y10 */x=sum (of y*);z=sum (of y1-y10);例中,兩個SUM函數(shù)的表示法是等價的。 正確的表示方法錯誤的表示方法sum (x, y, z)sum (x y z)sum (of x1-x10)sum (x1-x10)sum (of x1-x10 d y1-y100)sum (x1-x10 d y1-y100)Page 49SASSAS 函數(shù)結(jié)果函數(shù)結(jié)果 通常函數(shù)的結(jié)果由其自變量的屬性決定: 自變量是字符時結(jié)果變量為字符; 自變
31、量是數(shù)值時結(jié)果變量為數(shù)值。PUT函數(shù)是一個例外,它不管自變量是什么類型,其結(jié)果總是字符值。Page 50SASSAS用用PUTPUT語句在語句在LOGLOG窗口顯示函數(shù)值窗口顯示函數(shù)值例 顯示概率值和分位數(shù)。data;Y=probnorm(1.96); /* 標(biāo)準正態(tài)分布小于1.96的概率 */put Y;q1=tinv(.95, 2); /*自由度為2的t分布的0.95分位數(shù)*/q2=tinv(.95, 2, 3); /*自由為2,非中心參數(shù)為3的t分布的0.95分位數(shù)*/put q1= q2=;run;結(jié)果結(jié)果:0.9750021049q1=2.9199855804 q2=13.89437
32、6071Page 51SASSAS 日期函數(shù)日期函數(shù) SAS日期和時間存貯標(biāo)準是以1960年1月1日0時0分0秒為起點,然后以相應(yīng)的間隔記時。如1960年1月1日9時0分,按日記的數(shù)值就是0,按小時記的數(shù)值就是9。1960年1月2日0時0分,按日記的數(shù)值就是1,按小時記就是24等。 由于日期函數(shù)是一類非常重要的函數(shù),特別是對金融數(shù)據(jù)處理和金融計算,借助日期函數(shù)可以極大提高效率。Page 52SASSAS日期函數(shù)日期函數(shù) 例 計算兩個日期之間的天數(shù)。data _null_;sdate=01jan2002d;edate=01jan2003d;actual=datdif(sdate, edate,
33、act/act); /*按每個月的實際天數(shù)算 */days360=datdif(sdate, edate, 30/360); /*按每個月30天計算 */put actual= days360=;run;data _null_;actual=datdif(01jan2002d, 01jan2003d, act/act);days360=datdif(01jan2002d, 01jan2003d, 30/360);put actual= days360=;run;例中,兩段程序的結(jié)果一樣。actual=365, days360=360.Page 53SAS SAS 日期函數(shù)日期函數(shù) 例 以日為單
34、位計算當(dāng)前日期的天數(shù)。data;x=date (); y=today();put x= y=;run;例中,例中,DATE()和和TODAY()結(jié)果一樣,都是結(jié)果一樣,都是返回當(dāng)天的天數(shù)。當(dāng)然,也可以用一定的日返回當(dāng)天的天數(shù)。當(dāng)然,也可以用一定的日期格式表示它們。期格式表示它們。data;x=date (); y=today();format x y yymmdd10.;put x= y=;run;例 計算日期值所在的年季月以及處于某月的第幾天。data _null_;sdate=01jan2002d;year=year(sdate);qtr=qtr(sdate);month=month(sd
35、ate);day=day(sdate);put year= qtr= month= day=;run;結(jié)果顯示:x=17232 y=17232結(jié)果顯示:x=2007-03-07 y=2007-03-07結(jié)果顯示:Year=2002 qtr=1 month=1 day=1n PROC FREQ options; n 選項說明: n ORDER=選項及說明Page 54SASSAS 頻數(shù)分析過程頻數(shù)分析過程Page 55SASSAS頻數(shù)分析頻數(shù)分析nFORMCHAR(1,2,7)= 符號串:n 1規(guī)定垂直線字符;n 2規(guī)定水平線字符;n 7規(guī)定水平與垂直交叉線字符。n n通常情況下的FORMCHA
36、R=選項:nFORMCHAR(1,2,7)= | - +;n n表格沒有輪廓線和分隔線的FORMCHAR=選項:nFORMCHAR(1,2,7)= ; /* 三個空格 */ Page 56SASSAS頻數(shù)分析過程頻數(shù)分析過程 proc format ;value $weekb 周一=monday 周二=tuesday 周三=wednesday 周四=thursday 周五=Friday;/*按數(shù)據(jù)輸出值的格式排序*/proc freq data=s.reg order=formatted /*formatted,freq,data,internal */;table week;format w
37、eek $weekb.;run;/*按頻數(shù)的降序排序*/proc freq data=s.reg order=freq /*formatted,freq,data,internal */;table week;format week $weekb.;run;/*按數(shù)據(jù)集中數(shù)據(jù)出現(xiàn)的次序排序*/proc freq data=s.reg order=data /*formatted,freq,data,internal */;table week;format week $weekb.;run;nWEIGHT variable;n該語句規(guī)定一個WEIGHT變量,它的值表示相應(yīng)觀測的權(quán)數(shù)。該變量的值
38、應(yīng)大于零。若這個值0或缺失,假定該值為0。nBY variable-list;n對BY變量定義的觀測組分別計算其相應(yīng)的簡單統(tǒng)計量。當(dāng)使用BY語句時,要求輸入數(shù)據(jù)集已按BY變量排序的次序排列,除非指定NOTSORTED。 nOUTPUT語句 :OUTPUT ;n 該語句創(chuàng)建一個由PROC FREQ過程輸出統(tǒng)計量的SAS數(shù)據(jù)集。OUTPUT創(chuàng)建的數(shù)集可以包括由TABLES語句規(guī)定的任意統(tǒng)計量。n PROC FREQ過程每一次只允許使用一個OUTPUT語句。當(dāng)規(guī)定多個TABLES語句時,OUTPUT語句創(chuàng)建的數(shù)據(jù)集內(nèi)容對應(yīng)于最后那個TABLES語句,當(dāng)一個TABLES語句中規(guī)定多個表時,OUTPUT
39、創(chuàng)建的數(shù)據(jù)集內(nèi)容對應(yīng)于最后那個表。 選項說明:n OUT=規(guī)定輸出數(shù)據(jù)集;n output-statistic-list規(guī)定輸出數(shù)據(jù)集中所包含的統(tǒng)計量。 Page 57SASSAS 頻數(shù)分析過程頻數(shù)分析過程Page 58SASSAS 頻數(shù)分析過程舉例頻數(shù)分析過程舉例 data a;do I=1 to 1000;X=int(ranuni(8888)*3)+1;Y=int(ranuni(8888)*4)+1;output;end;run;proc freq data=a(drop=i);*table x y; /*對所有變量進行頻數(shù)分析時,不要該句和要該句效果一樣*/title 沒有TABLES語
40、句;run;proc freq;tables x x*y/chisq;run;proc freq;tables x*y/list;run;產(chǎn)生區(qū)間0, 1上均勻分布的隨機數(shù)1000個,分別將區(qū)間0, 1均分成3和4個小區(qū)間,并把產(chǎn)生的隨機數(shù)按所屬區(qū)間轉(zhuǎn)換為整數(shù)。然后對這些整數(shù)作頻數(shù)分析。 n 均值過程(MEANS)用于計算變量的基本描述統(tǒng)計量。 Page 59SASSAS均值過程均值過程 PROC MEANS ; BY variable-1 . variable-n ; CLASS variable(s) ; FREQ variable; ID variable(s); OUTPUT ; TY
41、PES request(s); VAR variable(s) ; WAYS list; WEIGHT variable; Page 60SASSAS 均值過程均值過程n PROC MEANS ; n option-list選項說明: Page 61SASSAS 均值過程均值過程ALPHA=規(guī)定置信區(qū)間的顯著水平DATA=規(guī)定輸入數(shù)據(jù)集NOPRINT不輸出任何描述統(tǒng)計量MISSING規(guī)定把CLASS變量的缺失值作為有效分組值處理DESCENDING規(guī)定輸出數(shù)據(jù)集是按_TYPE_值降序(缺省是上升)排列,選擇NWAY時該選項無效nORDER=選項及說明:nVARDEF=選項及說明: Page 6
42、2SASSAS 均值過程均值過程INTERNAL缺省值,按數(shù)據(jù)值的次序排列FREQ按頻數(shù)的降序排列DATA按數(shù)據(jù)集中數(shù)據(jù)出現(xiàn)的次序排列EXTERNAL|FORMATTED按數(shù)據(jù)輸出格式值的次序排列DF缺省值,規(guī)定除數(shù)使用自由度N-1WEIGHT|WGT規(guī)定除數(shù)使用權(quán)數(shù)和N規(guī)定除數(shù)使用觀測個數(shù)NWDF規(guī)定除數(shù)使用權(quán)數(shù)總和減1nstatistic-keyword-list選項就是均值過程可以計算的描述統(tǒng)計量。規(guī)定的關(guān)鍵詞可以分為三類:n 描述統(tǒng)計量關(guān)鍵詞;n 分位數(shù)關(guān)鍵詞;n 假設(shè)檢驗關(guān)鍵詞。Page 63SASSAS 均值過程均值過程proc means data=s.reg maxdec=2
43、mean n max min range std alpha=.05 clm fw=8;var wait quit;class week;output out=a mean=mean_w mean_q n=n_w n_q max=max_w max_q min=min_w min_q range=range_w range_q std=std_w std_q;run;Page 64SASSAS單變量過程單變量過程 n單變量過程(UNIVARIATE)除了能計算均值過程的基本統(tǒng)計量外,還可以實現(xiàn)的計算和功能有:n 穩(wěn)健性估計量;n 描述變量的分布圖;n 頻數(shù)表;n 多項檢驗。 PROC UNIV
44、ARIATE ; BY variable-1 . variable-n ; CLASS variable-1 v a r i a b l e - 2 ; FREQ variable; HISTOGRAM ; ID variable(s); INSET ; OUTPUT statistic-keyword-1=name(s) ; PROBPLOT ; QQPLOT ; VAR variable(s); WEIGHT variable; Page 65SASSAS nPROC UNIVARIATE DATA= SAS-datas-et ;n選項說明: nVARDEF=選項及說明:Page 66SA
45、SSAS應(yīng)用單變量過程進行多變量分析應(yīng)用單變量過程進行多變量分析proc univariate data=s.reg freq normal plot;var wait quit;class week;output out=test mean=mean_w mean_q std=std_w std_q pctlpts=25 50 75 pctlpre=a b ;run;Page 67SASSAS 擬合密度曲線擬合密度曲線 第一步:創(chuàng)建一個數(shù)據(jù)集,隨機生成一列正態(tài)分布和指數(shù)分布數(shù)據(jù).data distrdata;drop n;labelnormal_x=Normal Random Variabl
46、eexponential_x=Exponential Random Variable;do n=1 to 100;normal_x=10*rannor(53124)+50;exponential_x=ranexp(18746363);output;end;run; Page 68SASSAS proc univariate data=distrdata noprint;var Normal_x;histogram Normal_x /normal(color=yellow w=3 midpercents noprint) cbarline=red cfill=green ;inset n ma
47、x min mean std normal(ksdpval)/pos=ne format=6.3;title 100 Obs Sampled from a Normal Distribution;run;Page 69SASSAS proc univariate data=distrdata noprint;var Exponential_x;histogram /exp(fill l=3) cfill=yellow midpoints=.05 to 5.55 by .25;title 100 Obs Sampled from an Exponential Distribution;run;S
48、ASSAS綜合運用舉例綜合運用舉例Page 70第十章第十章n目的:從同一個文件夾中批量導(dǎo)入結(jié)構(gòu)相同的目的:從同一個文件夾中批量導(dǎo)入結(jié)構(gòu)相同的TXT文檔到邏輯庫文檔到邏輯庫,并合并為一個數(shù)據(jù)集。并合并為一個數(shù)據(jù)集。Page 71SASSAS /*第一步:用批量上傳的過程*/%macro directory(dir=); /*批量導(dǎo)入TXT文件數(shù)據(jù)臨時數(shù)據(jù)集, */%let rs=%sysfunc(filename(filref,&dir);%let did=%sysfunc(dopen(&filref);%let nobs=%sysfunc(dnum(&did);%do
49、 i=1 %to &nobs.; %let name=%qscan(%qsysfunc(dread(&did,&i),1,.); %let ext=%qscan(%qsysfunc(dread(&did,&i),-1,.); proc import out=&name. datafile=&dir.&name.&ext dbms=tab replace; getnames=yes; datarow=2; delimiter=|*|; run;%end;%let rc=%sysfunc(dclose(&did);%m
50、end;%directory(dir= txt所在文件夾的物理路徑 );Page 72SASSAS %macro append(out=);proc contents data=_all_ out=m.a;run;proc sql;select distinct MEMNAME into: ndatasetname separated by from m.a;quit;%put &ndatasetname.;%let i=1;%do %until (%scan(&ndatasetname., &i., )=);%let dataset=%scan(&ndatas
51、etname., &i., );%put &dataset.;%let dsid=%sysfunc(open(&dataset.,i);%let phone=%sysfunc(varname(&dsid.,1);*%let msm=%sysfunc(varname(&dsid.,7);%let name=%sysfunc(varname(&dsid.,7);%let gender=%sysfunc(varname(&dsid.,10);%let cardname=%sysfunc(varname(&dsid.,13);%let c
52、allin=%sysfunc(varname(&dsid.,16);%let date=%sysfunc(substr(&dataset.,19,8);%put &phone.;*%put &msm;%put &name.;%put &gender.;%put &cardname.;%put &callin.;Page 73SASSAS 1 1、批量導(dǎo)入并合并批量導(dǎo)入并合并%let rc=%sysfunc(close(&dsid.);data t.&dataset.;set &dataset.(keep= &phone. /*&msm.*/ &name. &gender. &a
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年冀教新版八年級化學(xué)下冊月考試卷含答案
- 書畫私人交易合同模板2024年版版B版
- 2025年人教版(2024)選擇性必修3歷史上冊月考試卷含答案
- 2025年外研銜接版二年級語文上冊月考試卷
- 2025年統(tǒng)編版2024九年級生物下冊月考試卷含答案
- 2024版設(shè)備租賃合同
- 幼兒園主題特色活動匯報
- 2024物業(yè)委托管理協(xié)議書-智慧社區(qū)物業(yè)委托管理與居民生活便利服務(wù)合同3篇
- 2024音樂作品發(fā)行許可合同
- 2025年度鐵藝制品維修保養(yǎng)與翻新合同3篇
- 中國AI+Agent應(yīng)用研究報告
- 七年級上冊生物2024-2025學(xué)年新人教版期末綜合試卷(含答案)
- 2024年全國教育大會精神全文課件
- DL-T5153-2014火力發(fā)電廠廠用電設(shè)計技術(shù)規(guī)程
- 文件袋、檔案袋密封條模板
- DB32-T 2665-2014機動車維修費用結(jié)算規(guī)范-(高清現(xiàn)行)
- 【部編版】2022年語文七年級上:作文能力提升—謀篇布局(含答案)
- 最新6000畝海帶筏式養(yǎng)殖投資建設(shè)項目可行性研究報告
- 稀土高鐵鋁合金電力電纜應(yīng)用參數(shù).
- 陳振明《公共管理學(xué)》(課堂PPT)
- 數(shù)據(jù)結(jié)構(gòu)-圖(1)
評論
0/150
提交評論