第二章軟件介紹課件_第1頁
第二章軟件介紹課件_第2頁
第二章軟件介紹課件_第3頁
第二章軟件介紹課件_第4頁
第二章軟件介紹課件_第5頁
已閱讀5頁,還剩127頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第二章軟件介紹第二章軟件介紹1第二章SAS軟件介紹SAS系統(tǒng)概述初識(shí)SASSAS程序的使用常識(shí)SAS數(shù)據(jù)步SAS程序的過程步SAS語言入門SAS數(shù)據(jù)集操作第二章SAS軟件介紹SAS系統(tǒng)概述2一、SAS系統(tǒng)概述SAS系統(tǒng)全稱為StatisticsAnalysisSystem,最早由北卡羅來納大學(xué)的兩位生物統(tǒng)計(jì)學(xué)研究生編制,并于1976年成立了SAS軟件研究所,正式推出了SAS軟件。SAS是用于決策支持的大型集成信息系統(tǒng),但該軟件系統(tǒng)最早的功能限于統(tǒng)計(jì)分析,至今,統(tǒng)計(jì)分析功能也仍是它的重要組成部分和核心功能。SAS現(xiàn)在的版本為9.1版,大小約為1.5G。經(jīng)過多年的發(fā)展,SAS已被全世界120多個(gè)國(guó)家和地區(qū)的近三萬家機(jī)構(gòu)所采用,直接用戶則超過三百萬人,遍及金融、醫(yī)藥衛(wèi)生、生產(chǎn)、運(yùn)輸、通訊、政府和教育科研等領(lǐng)域。一、SAS系統(tǒng)概述SAS系統(tǒng)全稱為StatisticsAn3在英美等國(guó),能熟練使用SAS進(jìn)行統(tǒng)計(jì)分析是許多公司和科研機(jī)構(gòu)選材的條件之一。在數(shù)據(jù)處理和統(tǒng)計(jì)分析領(lǐng)域,SAS系統(tǒng)被譽(yù)為國(guó)際上的標(biāo)準(zhǔn)軟件系統(tǒng),并在96~97年度被評(píng)選為建立數(shù)據(jù)庫的首選產(chǎn)品??胺Q統(tǒng)計(jì)軟件界的巨無霸。在此僅舉一例如下:在以苛刻嚴(yán)格著稱于世的美國(guó)FDA新藥審批程序中,新藥試驗(yàn)結(jié)果的統(tǒng)計(jì)分析規(guī)定只能用SAS進(jìn)行,其他軟件的計(jì)算結(jié)果一律無效!哪怕只是簡(jiǎn)單的均數(shù)和標(biāo)準(zhǔn)差也不行!由此可見SAS的權(quán)威地位。在英美等國(guó),能熟練使用SAS進(jìn)行統(tǒng)計(jì)分析是許多公司和科研機(jī)構(gòu)4SAS系統(tǒng)是集數(shù)據(jù)分析、生成報(bào)表于一體的一種集成軟件系統(tǒng)。它由基本部分和外加模塊組成:基本部分:BASESAS部分;統(tǒng)計(jì)分析計(jì)算部分:SAS/STAT;繪圖部分:SAS/GRAPH;矩陣運(yùn)算部分:SAS/IML;運(yùn)籌學(xué)和線性規(guī)劃:SAS/OR;經(jīng)濟(jì)預(yù)測(cè)和時(shí)間序列分析:SAS/ETS;質(zhì)量控制模塊:SAS/QC快速數(shù)據(jù)處理的交互式菜單系統(tǒng)模塊:SAS/FSP交互式全屏幕軟件應(yīng)用系統(tǒng)模塊:SAS/AFSAS系統(tǒng)是集數(shù)據(jù)分析、生成報(bào)表于一體的一種集成軟件系統(tǒng)。5二、初識(shí)SAS

安裝SAS9.1幾個(gè)注意點(diǎn):修改系統(tǒng)時(shí)間到2006年12月31日前選擇許可軟件

二、初識(shí)SAS安裝SAS9.16啟動(dòng)SAS啟動(dòng)SAS7DATA步中的常用語句avg=math/120*100*0.SAS對(duì)程序的書寫格式比較靈活,大小寫一般不區(qū)分(字符串中要區(qū)分大小寫);功能:輸入值嚴(yán)格按指定列號(hào)順序獲取。下述程序則是復(fù)合的IF結(jié)構(gòu)。DOWHILE(循環(huán)繼續(xù)條件); 循環(huán)體語……procsortdata=mysas.當(dāng)變量的值為日期類型或時(shí)間類型時(shí),用戶必須規(guī)定變量的WHEN(值列表2)語句2;……Sinefunctionvalueof0.SAS有三個(gè)最重要的子窗口:程序窗口(PROGRAMEDITOR)、運(yùn)行記錄窗口(LOG)、輸出窗口(OUTPUT)。INPUTWEIGHT;,指字符串長(zhǎng)度為12位。擬合Logistic回歸模型張紅藝女89106則規(guī)定顯示頁號(hào)),NODATE表示不在每頁顯示運(yùn)行SAS程序由語句組成,語句用分號(hào)結(jié)束。數(shù)據(jù)集變量、觀測(cè)記錄的增加與篩選title'0901班學(xué)生成績(jī)排名';它由基本部分和外加模塊組成:SAS有三個(gè)最重要的子窗口:程序窗口(PROGRAMEDITOR)、運(yùn)行記錄窗口(LOG)、輸出窗口(OUTPUT)。簡(jiǎn)單運(yùn)行樣例

假設(shè)我們有一個(gè)班學(xué)生的數(shù)學(xué)成績(jī)和語文成績(jī),數(shù)學(xué)滿分為100,語文滿分為120,希望計(jì)算學(xué)生的平均分?jǐn)?shù)(按百分制)并按此排名,可以在程序窗口輸入此程序:DATA步中的常用語句SAS有三個(gè)最重要的子窗口:程序窗口(8title'0901班學(xué)生成績(jī)排名';libnamea‘d:\’;/*環(huán)境設(shè)置語句*/dataa.c0901;inputname$1-10sex$mathchinese;avg=math*0.5+chinese/120*100*0.5;cards;李明男9298張紅藝女89106王思明男8690張聰男98109劉潁女80110;run;procprint;run;procsortdata=a.c0901;bydescendingavg;/*按平均成績(jī)降序排序*/run;procprint;run;title'0901班學(xué)生成績(jī)排名';9實(shí)際上,上述程序是文本,完全可以在任何文本編輯工具中輸入,比如Windows中的記事本,甚至Word也可用來輸入這樣包含中文的程序。輸入后使用復(fù)制復(fù)制、粘貼命令將輸入的程序粘貼到SAS系統(tǒng)程序窗口。(即在記事本中復(fù)制輸入的程序,然后在SAS系統(tǒng)程序窗口中使用粘貼命令,把程序復(fù)制到SAS中)。要運(yùn)行此程序,只要用鼠標(biāo)單擊工具欄的提交(Submit)圖標(biāo),或用Run菜單下的Submit命令,或者直接按下F8鍵,就可運(yùn)行程序。如果選中某一段程序,然后進(jìn)行調(diào)用,則系統(tǒng)只執(zhí)行被選中的部分。實(shí)際上,上述程序是文本,完全可以在任何文本編輯工具中輸入,比10運(yùn)行后,輸出窗口出現(xiàn)如下結(jié)果:0901班學(xué)生成績(jī)排名Obsnamesexmathchineseavg1李明男929886.83332張紅藝女8910688.66673王思明男869080.50004張聰男9810994.41675劉潁女8011085.8333運(yùn)行記錄窗口則記錄每段程序的運(yùn)行情況、所用時(shí)間、生成數(shù)據(jù)保存情況。如果有錯(cuò)誤還會(huì)用紅色指示錯(cuò)誤。運(yùn)行后,輸出窗口出現(xiàn)如下結(jié)果:11三、SAS程序的使用常識(shí)

從上面的例子程序可以看出SAS程序的一些特點(diǎn)。SAS程序的基本結(jié)構(gòu)SAS程序由語句組成,語句用分號(hào)結(jié)束。語句一般由特定的關(guān)鍵詞開始,語句中可包含變量名、運(yùn)算符等,它們以空格分隔。SAS對(duì)語句所占的行數(shù)無限制,一個(gè)語句可占多行,同樣,多個(gè)語句也可占一行。SAS對(duì)程序的書寫格式比較靈活,大小寫一般不區(qū)分(字符串中要區(qū)分大小寫);三、SAS程序的使用常識(shí)從上面的例子程序可以看出SAS程序12SAS程序的程序注釋有以下兩種格式:增強(qiáng)程序可讀性注釋語句:以星號(hào)“*”開始,可占多行,以分號(hào)“;”結(jié)束?!?*該段有待核實(shí)*/注釋段落:用“/*”和“*/”包括起來的任何字符,可占多行。SAS程序的程序組成SAS程序可以非常復(fù)雜,但其基本結(jié)構(gòu)一般由數(shù)個(gè)完成單個(gè)動(dòng)作的環(huán)境設(shè)置語句和程序步構(gòu)成。而程序步分為兩種,一種叫數(shù)據(jù)步(datastep),一種叫過程步(procstep),分別以DATA語句和PROC語句開始。數(shù)據(jù)步和過程步由若干個(gè)語句組成,一般以RUN語句結(jié)束。

SAS程序的程序注釋有以下兩種格式:增強(qiáng)程序可讀性13數(shù)據(jù)集(dataset)和庫

SAS數(shù)據(jù)集(SASDatasets)可以看作由若干行和若干列組成的表格,類似于一個(gè)矩陣,但各列可以取不同的類型值,比如整數(shù)值、浮點(diǎn)值、時(shí)間值、字符串、貨幣值等等。比如,前面的例子生成了一個(gè)名為C0401的數(shù)據(jù)集,它的邏輯形式如下表:數(shù)據(jù)集(dataset)和庫14NAMESEXMATHCHINESEAVG李明男929886.8333張紅藝女8910688.6667王思明男869080.5000張聰男9810994.4167劉潁女8011085.8333表1數(shù)據(jù)集的邏輯形式NAMESEXMATHCHINESEAVG李明男92988615數(shù)據(jù)集的每一行叫做一個(gè)觀測(cè)(Observation),每列叫做一個(gè)變量(Variable)。在數(shù)據(jù)庫術(shù)語中一個(gè)觀測(cè)稱作一個(gè)記錄,一個(gè)變量稱作一個(gè)域。SAS數(shù)據(jù)集等價(jià)于關(guān)系數(shù)據(jù)庫系統(tǒng)中的一個(gè)表,實(shí)際上一個(gè)SAS數(shù)據(jù)集有時(shí)也稱作一個(gè)表。從上面看出,數(shù)據(jù)集要有名字,變量要有名字,所以SAS中對(duì)名字(數(shù)據(jù)集名、變量名、數(shù)據(jù)庫名,等等)有約定:SAS名字由英文字母、數(shù)字、下劃線組成,第一個(gè)字符必須是字母或下劃線,名字最多用8個(gè)字符,大寫字母和小寫字母不區(qū)分。比如,name,abc,aBC,x1,year12,_NULL_等是合法的名字,且abc和aBC是同一個(gè)名字,而class-1(不能有減號(hào))、abit(不能有空格)、serial#(不能有特殊字符)、Documents(超長(zhǎng))等不是合法的名字。

數(shù)據(jù)集的每一行叫做一個(gè)觀測(cè)(Observation),每列叫16邏輯庫SAS系統(tǒng)將所使用的文件以庫的形式組織起來,而數(shù)據(jù)集則存放在一個(gè)庫中,這個(gè)庫就稱為邏輯庫。前面見到過的libname命令就用于指定庫標(biāo)記。其一般格式為:

Libname庫名稱‘文件夾位置’選項(xiàng);引用在邏輯庫中數(shù)據(jù)集時(shí)要使用兩級(jí)名稱來指定,第一級(jí)為庫名稱,第二級(jí)為數(shù)據(jù)集名,中間用句點(diǎn)“.”隔開,即:庫名稱.數(shù)據(jù)集名libnamea‘d:\’;dataa.c0901;……procsortdata=a.c0901;……

邏輯庫17通過SAS命令菜單方式建立邏輯庫名與子目錄的連接:操作過程為:進(jìn)入Explorer窗口/右擊(Library)圖標(biāo)/選擇“new…”命令/在彈出的窗口(見圖1-4)的name欄中輸入庫名/在Path欄中輸入目錄路徑或點(diǎn)擊右側(cè)的“Browse”按鈕選擇磁盤中的文件夾/選中右側(cè)的“Enableatstartup”使其永久有效,然后點(diǎn)“OK”完成新庫名的定義。通過SAS命令菜單方式建立邏輯庫名與子目錄的連接:操作過程為18第二章軟件介紹課件19SAS文件分類SAS文件本質(zhì)上可以分為臨時(shí)文件和永久文件兩類:臨時(shí)文件在退出SAS系統(tǒng)時(shí)自動(dòng)被刪除,永久文件則會(huì)長(zhǎng)期保留在磁盤中。所以,在應(yīng)用過程中,我們通常把中間結(jié)果數(shù)據(jù)集或練習(xí)數(shù)據(jù)集作為臨時(shí)數(shù)據(jù)集文件保存,而將以后需要使用的數(shù)據(jù)集保存為永久數(shù)據(jù)集。SAS文件分類20永久數(shù)據(jù)集操作1.生成永久數(shù)據(jù)集的實(shí)例如下:把數(shù)據(jù)集放入指定的子目錄"d:\SAS2007"中,在程序中可以用如下語句建立邏輯庫,除work邏輯庫以外的其它邏輯庫中的數(shù)據(jù)集,都可以做為永久數(shù)據(jù)集保存:

libnamemysas"d:\SAS2007";datamysas.stu01;……procsortdata=mysas.stu01;……2.對(duì)于已經(jīng)事先創(chuàng)立的永久SAS數(shù)據(jù)集,如果已建立了邏輯庫,當(dāng)需要在某個(gè)過程步中調(diào)用它時(shí),那么我們不必重復(fù)定義邏輯庫,而需要在該過程步中加上選項(xiàng):data=mySAS.stu,以指明要使用的數(shù)據(jù)集。永久數(shù)據(jù)集操作21INPUTNAME$AGE;PROCPRINT;在使用帶有BY語句的過程步之前,應(yīng)先用SORT過程按BY語句指定的變量對(duì)數(shù)據(jù)集排序。x=2*x;例如1962年3月20日被SAS程序的使用常識(shí)VAR語句在過程步中用于指定分析變量。RUN;例c:INPUT(Nameprice1-price6)($12.則結(jié)果在LOG窗口顯示為#N:指明從第N行開始讀數(shù)據(jù)。日月年7位例:20DEC97日期和時(shí)間(改用DATE則顯示),LINESIZE=78規(guī)定數(shù)據(jù)集(dataset)和庫運(yùn)行后,輸出窗口出現(xiàn)如下結(jié)果:libnamemysas"d:\SAS2007";datamysas.Sinefunctionvalueof0.INPUT(變量1-變量N)(輸入格式描述符);1李明男929886.3,效果為523458.5劉潁女8011085.四、SAS數(shù)據(jù)步簡(jiǎn)介DATA步基本結(jié)構(gòu):DATA數(shù)據(jù)集名;INPUT變量名1[$]變量名2[$]……變量名n[$];CARDS;源數(shù)據(jù)行;RUN;備注:當(dāng)數(shù)據(jù)中有“;”時(shí),cards改為cards4,數(shù)據(jù)以“;;;;”作為結(jié)束對(duì)應(yīng)INPUTNAME$AGE;四、SAS數(shù)據(jù)步簡(jiǎn)22Data步語句說明:SAS處理的數(shù)據(jù)可分為:字符型、數(shù)值型兩大類,日期型數(shù)據(jù)屬于數(shù)值型。字符型變量名后必須使用$說明符。每行數(shù)據(jù)的行尾不能有分號(hào)“;”,但數(shù)據(jù)行結(jié)束后的”;”分號(hào)必須單獨(dú)占一行。變量名不分大小寫。Data步語句說明:SAS處理的數(shù)據(jù)可分為:字符型、數(shù)值型兩23DATA步中的INPUT語句INPUT語句具有的四種使用格式:1)列標(biāo)識(shí)方式(COLUMN)格式:INPUT變量名1[$]起始列-終止列變量名2[$]起始列-終止列…變量名n[$]起始列-終止列;功能:輸入值嚴(yán)格按指定列號(hào)順序獲取。注意:字符型數(shù)據(jù)中可鑲嵌空格,數(shù)據(jù)最長(zhǎng)為200個(gè)字符,字符型變量要跟一個(gè)$字符。例如:INPUTNAME$1-12SEX$13AGE14-15;DATA步中的INPUT語句INPUT語句具有的四種使用242)自由格式:格式:INPUT變量名1[$]變量名2[$]…變量n[$];語句的功能與特點(diǎn):說明:數(shù)據(jù)項(xiàng)之間要至少用一個(gè)空格分隔。字符型數(shù)據(jù)中間不能有空格,且最長(zhǎng)為200個(gè)字符。用小數(shù)點(diǎn)‘.’表示數(shù)值型數(shù)據(jù)的缺失值。每個(gè)字段變量要按順序排列。例如:INPUTNAME$SEX$AGE;2)自由格式:253)格式輸入:格式:INPUT指針控制變量輸入格式描述符;指針控制:@N指針轉(zhuǎn)向第N列;(絕對(duì)移動(dòng))+N指針向右移N列;(相對(duì)移動(dòng))常用SAS變量輸入格式描述符說明:W.:寬度為W位標(biāo)準(zhǔn)數(shù)字,應(yīng)用實(shí)例:8.,指數(shù)值型數(shù)據(jù)長(zhǎng)為8個(gè)字符,且小數(shù)點(diǎn)位為零位。W.D:含小數(shù)點(diǎn)的標(biāo)準(zhǔn)數(shù)字,數(shù)字總長(zhǎng)度為W位,其中包括小數(shù)點(diǎn)占1位,小數(shù)占D位,以及正負(fù)符號(hào)占一位,所以所描述數(shù)據(jù)的整數(shù)部分的位數(shù)最多為W-D-2位。應(yīng)用實(shí)例:10.3,效果為523458.356。3)格式輸入:26$W.:長(zhǎng)度為W的標(biāo)準(zhǔn)字符串,應(yīng)用實(shí)例:$12.,指字符串長(zhǎng)度為12位。COMMAW.D:長(zhǎng)度位為W的數(shù)字,其中小數(shù)點(diǎn)占一位,小數(shù)部分占D位,正負(fù)號(hào)占一位,數(shù)據(jù)的整數(shù)部分每3位有一個(gè)逗號(hào)分隔符,逗號(hào)也占字符串寬度。應(yīng)用實(shí)例:COMMA12.1,效果為:63,145,690.5。$CHARW.:寬度為W,含有空格的字符串。有格式說明就不需用列方式,列方式與格式方式只能選其一,不能兩者同用。例:INPUTNAME$12.@14SEX$+2AGE2.@25SALECOMMA10.2;$W.:長(zhǎng)度為W的標(biāo)準(zhǔn)字符串,應(yīng)用實(shí)例:$12.,指字符串27日期數(shù)據(jù)格式:SAS系統(tǒng)日期數(shù)據(jù)以1960年1月1日為起始日,系統(tǒng)以距離起始日期的總天數(shù)記錄實(shí)際日期。例如1962年3月20日被存儲(chǔ)為809,表示此日期與1960年1月1日相距809天。所以,當(dāng)變量的值為日期類型或時(shí)間類型時(shí),用戶必須規(guī)定變量的輸入和輸出格式。例如1997年12月20日,可用下列日期格式表示:MMDDYY6.月日年6位例:122097MMDDYY8.月日年8位例:12/20/97或12-20-97或12201997DDMMYY6.日月年6位例:201297YYMMDD6.年月日6位例:971220DATE7.日月年7位例:20DEC97DATE9.日月年9位例:2ODEC1997MMDDYY10.月日年10位例:12/20/1997或12-20-1997日期數(shù)據(jù)格式:28SAS系統(tǒng)全稱為StatisticsAnalysisSystem,最早由北卡羅來納大學(xué)的兩位生物統(tǒng)計(jì)學(xué)研究生編制,并于1976年成立了SAS軟件研究所,正式推出了SAS軟件。DATA步中的INPUT語句四、SAS數(shù)據(jù)步簡(jiǎn)介’表示數(shù)值型數(shù)據(jù)的缺失值。Libname庫名稱‘文件夾位置’選項(xiàng);x=2*x;在此僅舉一例如下:在以苛刻嚴(yán)格著稱于世的美國(guó)FDA新藥審批程序中,新藥試驗(yàn)結(jié)果的統(tǒng)計(jì)分析規(guī)定只能用SAS進(jìn)行,其他軟件的計(jì)算結(jié)果一律無效!備注:當(dāng)數(shù)據(jù)中有“;”時(shí),cards改為cards4,數(shù)據(jù)以“;;;;”作為結(jié)束對(duì)應(yīng)inputname$1-10sex$mathenglish;VAR語句的語法格式為:頁有一行標(biāo)題,內(nèi)容為“TheSASSystem”。為數(shù)據(jù)文件建立快捷方式注:其中Else語句及其后的程序塊可以省略。inputname$1-10sex$mathchinese;MODEL語句在統(tǒng)計(jì)建模過程中用來指定模型的形式。數(shù)據(jù)步和過程步由若干個(gè)語句組成,一般以RUN語句結(jié)束。經(jīng)過多年的發(fā)展,SAS已被全世界120多個(gè)國(guó)家和地區(qū)的近三萬家機(jī)構(gòu)所采用,直接用戶則超過三百萬人,遍及金融、醫(yī)藥衛(wèi)生、生產(chǎn)、運(yùn)輸、通訊、政府和教育科研等領(lǐng)域。/:從下一行第一列開始讀數(shù)據(jù)。libnamea‘d:\’;/*環(huán)境設(shè)置語句*/對(duì)于已經(jīng)事先創(chuàng)立的永久SAS數(shù)據(jù)集,如果已建立了邏輯庫,當(dāng)需要在某個(gè)過程步中調(diào)用它時(shí),那么我們不必重復(fù)定義邏輯庫,而需要在該過程步中加上選項(xiàng):data=mySAS.例:日期與時(shí)間的格式應(yīng)用:DATADAYS;INPUTBIRTHDAYMMDDYY8.+1INDAYMMDDYY8.+1TESTDAYDATE9.;CARDS;08-04-8307/14/9020SEP199011-14-8307/26/9020SEP1990;注意:輸出的日期格式長(zhǎng)度一般應(yīng)與日期的輸入格式一致。如輸入格式為MMDDYY6.,輸出格式可以是MMDDYY6.或MMDDYY8.。如果輸出格式為MMDDYY10.,就會(huì)產(chǎn)生輸出錯(cuò)誤。SAS系統(tǒng)全稱為StatisticsAnalysisSy294)組格式輸入:組格式輸入語法格式:INPUT(變量1-變量N)(輸入格式描述符);

例a:INPUT(x1-x5)(4.);

/*變量x1-x5最多為4位整數(shù)*/

例b:INPUT(aabb)($8.,7.2);(變量aa為8位長(zhǎng)的字符型數(shù)據(jù),變量bb為7位長(zhǎng),且小數(shù)為2位的數(shù)值型數(shù)據(jù))

例c:INPUT(Nameprice1-price6)($12.6*8.1);(變量Name為12位長(zhǎng)的字符,price1-price6共6個(gè)變量均為8位長(zhǎng)的數(shù)值,小數(shù)為1位)4)組格式輸入:30高級(jí)輸入格式控制描述符:行保持標(biāo)示符@和@@@:CARDS語句中的數(shù)據(jù)一行為一條觀測(cè)記錄,用多條INPUT語句讀入。@@:CARDS語句中的數(shù)據(jù)一行為多條觀測(cè)記錄,用一條INPUT語句讀入。/:從下一行第一列開始讀數(shù)據(jù)。#N:指明從第N行開始讀數(shù)據(jù)。高級(jí)輸入格式控制描述符:31例:數(shù)據(jù)步中所有的INPUT語句完成一個(gè)觀測(cè)記錄的數(shù)據(jù)輸入:

DATAA;INPUTNAME$AGE;/*此語句應(yīng)改寫為:INPUTNAME$AGE@;*/INPUTWEIGHT;CARDS;ZHANG2375.6XIAO1232WEI1430;RUN;PROCPRINT;RUN;例:數(shù)據(jù)步中所有的INPUT語句完成一個(gè)觀測(cè)記錄的數(shù)據(jù)輸入32五、SAS程序的過程步

通俗地說,SAS程序的過程步就是用于實(shí)現(xiàn)各種統(tǒng)計(jì)分析功能的SAS命令,我們只需要按照其格式調(diào)用它們。過程步總是以一個(gè)proc語句開始,后面緊跟著過程步名。下表列出一些常用的過程步名及功能。五、SAS程序的過程步通俗地說,SAS程序的過程步就是用于33過程步名功能Sort將數(shù)據(jù)集按指定變量排序Print將數(shù)據(jù)集中數(shù)據(jù)列表輸出Gchart繪統(tǒng)計(jì)圖Univariate對(duì)指定的數(shù)值變量作詳細(xì)的統(tǒng)計(jì)描述Means對(duì)指定的數(shù)值變量作簡(jiǎn)單的統(tǒng)計(jì)描述Freq對(duì)指定的分類變量作統(tǒng)計(jì)描述和檢驗(yàn)Npar1way非參數(shù)檢驗(yàn)Ttest進(jìn)行t檢驗(yàn)Anova進(jìn)行方差分析GLM擬合一般線性模型REG擬合線性回歸模型Corr進(jìn)行相關(guān)分析Logistic擬合Logistic回歸模型Phreg擬合cox比例風(fēng)險(xiǎn)模型過程步名功能Sort將數(shù)據(jù)集按指定變量排序Print將數(shù)據(jù)集34SAS是用于決策支持的大型集成信息系統(tǒng),但該軟件系統(tǒng)最早的功能限于統(tǒng)計(jì)分析,至今,統(tǒng)計(jì)分析功能也仍是它的重要組成部分和核心功能。/*變量x1-x5最多為4位整數(shù)*/行保持標(biāo)示符@和@@@14SEX$+2AGE2.IFx>0THENDO;為數(shù)據(jù)文件建立快捷方式procmeansdata=data_prg.例如1997年12月20日,可用下列日期格式表示:5+chinese/120*100*0.DOWHILE(循環(huán)繼續(xù)條件); 循環(huán)體語y=SQRT(x);說明:上述三種語句一般稱為“全程語句”!dataahualian.通過SAS命令菜單方式建立邏輯庫名與子目錄的連接:操作過程為:進(jìn)入Explorer窗口/右擊(Library)圖標(biāo)/選擇“new…”命令/在彈出的窗口(見圖1-4)的name欄中輸入庫名/在Path欄中輸入目錄路徑或點(diǎn)擊右側(cè)的“Browse”按鈕選擇磁盤中的文件夾/選中右側(cè)的“Enableatstartup”使其永久有效,然后點(diǎn)“OK”完成新庫名的定義。title'0901班學(xué)生成績(jī)排名';,輸出格式可以是MMDDYY6.inputname$1-10sex$mathenglish;SAS也提供了一個(gè)PUT語句,可以象其它語言程序的PRINT、WRITE(*,*)、printf等語句一樣立即打印輸出結(jié)果。inputname$1-10sex$mathchinese;數(shù)據(jù)步和過程步由若干個(gè)語句組成,一般以RUN語句結(jié)束。SAS過程步簡(jiǎn)介1.VAR語句VAR語句在過程步中用于指定分析變量。VAR語句的語法格式為:VAR變量名1變量名2…變量名n;變量名列表可以使用省略的形式,如x1-x3等。應(yīng)用實(shí)例:varmathchinese;SAS是用于決策支持的大型集成信息系統(tǒng),但該軟件系統(tǒng)最早的功352.MODEL語句MODEL語句在統(tǒng)計(jì)建模過程中用來指定模型的形式。語法格式為:MODEL因變量=自變量列表/選項(xiàng);應(yīng)用實(shí)例:modely=x1x2x3;2.MODEL語句363.BY語句BY語句在過程步中用來指定一個(gè)或幾個(gè)分組變量,根據(jù)這些分組變量值可以把觀測(cè)記錄分組,然后對(duì)每一組觀測(cè)分別進(jìn)行指定的分析。在使用帶有BY語句的過程步之前,應(yīng)先用SORT過程按BY語句指定的變量對(duì)數(shù)據(jù)集排序。例:假設(shè)我們已經(jīng)把class1數(shù)據(jù)集按性別排序,則下面PRINT過程可以把男、女生分別列出:procprintdata=class1;bysex;run;3.BY語句374.OUTPUT語句OUTPUTOUT=輸出數(shù)據(jù)集名關(guān)鍵字=變量名關(guān)鍵字=變量名…;其中用OUT=給出了存放結(jié)果數(shù)據(jù)集的名字,關(guān)鍵字用于定義輸出變量名,用“關(guān)鍵字=變量名”的方式指定了系統(tǒng)自動(dòng)輸出變量與存儲(chǔ)變量之間的對(duì)應(yīng)關(guān)系。等號(hào)后面的變量名指定了輸出數(shù)據(jù)集中的存儲(chǔ)變量名稱。例:procmeansdata=data_prg.class1;varmath;outputout=result02n=nmean=meanmathvar=varmath;run;procprintdata=result02;run;4.OUTPUT語句38第二章軟件介紹課件39第二章軟件介紹課件40說明:在DATA步中也可以用FORMAT語句規(guī)定變量的輸出格式,用LABEL語句規(guī)定變量的標(biāo)簽,用LENGTH語句規(guī)定變量的存儲(chǔ)長(zhǎng)度,用ATTRIB語句同時(shí)規(guī)定變量的各屬性。在數(shù)據(jù)步中規(guī)定的變量屬性是附屬于數(shù)據(jù)集本身的,是永久的;在過程步中規(guī)定的變量屬性(標(biāo)簽、輸出格式等)只對(duì)該過程的本次運(yùn)行發(fā)揮作用。說明:41六、SAS語言入門1.TITLE標(biāo)題語句SAS系統(tǒng)有一默認(rèn)的輸出標(biāo)題,使輸出的每頁有一行標(biāo)題,內(nèi)容為“TheSASSystem”。事實(shí)上,我們可以指定自己的標(biāo)題來取代SAS缺省的標(biāo)題。語句格式為:TITLE'標(biāo)題內(nèi)容';例如,title'2001級(jí)1班成績(jī)表';六、SAS語言入門1.TITLE標(biāo)題語句422.FOOTNOTE腳注語句全程語句FOOTNOTE用于為輸出添加腳注,語句格式為:FOOTNOTE'注腳內(nèi)容字符串';例如:FOOTNOTE'第三章例子';則其后的輸出每頁底端會(huì)有腳注“第三章例子”顯示,直到用另一個(gè)FOOTNOTE語句指定新的腳注,或用空FOOTNOTE語句取消腳注為止。使用方法同TITLE語句。2.FOOTNOTE腳注語句433.輸出格式選項(xiàng)OPTIONS語句OPTIONS語句可以規(guī)定系統(tǒng)運(yùn)行的一些通用選擇項(xiàng),比如輸出是否每頁有頁號(hào),是否有日期,輸出的行寬,輸出每一頁的高度(行數(shù)),等等。例如:optionsnonumbernodatelinesize=78pagesize=60;

其中NONUMBER表示輸出不顯示頁號(hào)(改用NUMBER則規(guī)定顯示頁號(hào)),NODATE表示不在每頁顯示運(yùn)行日期和時(shí)間(改用DATE則顯示),LINESIZE=78規(guī)定輸出每行最寬不超過78個(gè)字符,PAGESIZE=60規(guī)定輸出每頁為60行,不足時(shí)用空行補(bǔ)齊。說明:上述三種語句一般稱為“全程語句”!3.輸出格式選項(xiàng)OPTIONS語句44DOUNTIL直到型循環(huán)”,字符型變量的缺失值為空格“”。月日年6位例:122097則規(guī)定顯示頁號(hào)),NODATE表示不在每頁顯示運(yùn)行當(dāng)變量的值為日期類型或時(shí)間類型時(shí),用戶必須規(guī)定變量的@14SEX$+2AGE2.avg=math*0.月日年8位例:12/20/97或12-20-97或12201997procmeansdata=data_prg.月日年8位例:12/20/97或12-20-97或12201997質(zhì)量控制模塊:SAS/QC例如1962年3月20日被z=Log(x);從上面看出,數(shù)據(jù)集要有名字,變量要有名字,所以SAS中對(duì)名字(數(shù)據(jù)集名、變量名、數(shù)據(jù)庫名,等等)有約定:SAS名字由英文字母、數(shù)字、下劃線組成,第一個(gè)字符必須是字母或下劃線,名字最多用8個(gè)字符,大寫字母和小寫字母不區(qū)分。BY語句在過程步中用來指定一個(gè)或幾個(gè)分組變量,根據(jù)這些分組變量值可以把觀測(cè)記錄分組,然后對(duì)每一組觀測(cè)分別進(jìn)行指定的分析。dataahualian.變量名列表可以使用省略的形式,如x1-x3等。procprint;INPUT變量名1[$]變量名2[$]……變量名n[$];ifmath<90thendelete;DATA步中的常用語句4.賦值語句與表達(dá)式格式為:變量名=表達(dá)式;例如:avg=(math+Chinese+English)/3;isfcat=(sex='f');y=Log(x)**2;newprice=.;

其中第一個(gè)賦值語句用一個(gè)公式計(jì)算平均分?jǐn)?shù)。第二個(gè)表達(dá)式利用邏輯運(yùn)算生成一個(gè)取值為0或1的變量,當(dāng)性別變量“sex”的值為f時(shí),計(jì)算結(jié)果為1,否則為0。第三個(gè)表達(dá)式使用對(duì)數(shù)函數(shù)和乘方運(yùn)算。第四個(gè)表達(dá)式給變量賦了缺失值。注意:數(shù)值型變量的缺失值為點(diǎn)“.”,字符型變量的缺失值為空格“”。DOUNTIL直到型循環(huán)DATA步中的常用語句4.賦值語455.輸出語句SAS數(shù)據(jù)步的輸出一般是數(shù)據(jù)集,用賦值語句計(jì)算的結(jié)果會(huì)自動(dòng)寫入數(shù)據(jù)集。SAS也提供了一個(gè)PUT語句,可以象其它語言程序的PRINT、WRITE(*,*)、printf等語句一樣立即打印輸出結(jié)果。例:dataa;x=0.5;y=sin(x);put'Sinefunctionvalueof'x'is'y;run;5.輸出語句46結(jié)果將在運(yùn)行記錄窗口顯示一行Sinefunctionvalueof0.5is0.4794255386在PUT語句中使用“變量名=”來指定輸出項(xiàng)可以顯示帶有變量名的輸出結(jié)果,比如把上程序中的PUT語句改為putx=y=;則結(jié)果在LOG窗口顯示為X=0.5Y=0.4794255386結(jié)果將在運(yùn)行記錄窗口顯示一行476.分支語句SAS系統(tǒng)提供2種實(shí)現(xiàn)分支結(jié)構(gòu)控制的語句,IF語句和SELECT語句。IF語句語法格式:IF邏輯表達(dá)式THEN語句1;ELSE語句2;注:其中Else語句及其后的程序塊可以省略。需要注意的是,如果程序塊只有一句,則可直接寫出,否則應(yīng)以DO開始,以END結(jié)束。語句功能:當(dāng)邏輯表達(dá)式的計(jì)算結(jié)果為真時(shí),執(zhí)行語句1,否則執(zhí)行語句2。6.分支語句48比如,ifmax(a)<20thenp=0;elsep=1;上述程序當(dāng)max(a)<20時(shí)p=0,否則p=1。下述程序則是復(fù)合的IF結(jié)構(gòu)。IFx>0THENDO;PUT'X為正數(shù)';x=2*x;PUTx=;END;比如,49SELECT語句SELECT(選擇表達(dá)式); WHEN(值列表1)語句1; WHEN(值列表2)語句2;…… OTHERWISE語句n;END;其中“選擇表達(dá)式”是一個(gè)計(jì)算結(jié)果為數(shù)值或字符的表達(dá)式,“值列表”由一個(gè)或者若干項(xiàng)構(gòu)成,各項(xiàng)之間用逗號(hào)分隔,每項(xiàng)可以是一個(gè)與選擇表達(dá)式具有相同數(shù)據(jù)類型的常量或表達(dá)式?!罢Z句”可以是單個(gè)語句或復(fù)合語句。SELECT語句50select(price);/*括號(hào)內(nèi)表達(dá)式可以不用*/When(12,24)put'價(jià)格高';when(3,5,7)put'價(jià)格底';otherwiseput'價(jià)格不明';end;select(price);/*括號(hào)內(nèi)表達(dá)式可以不用*/517.循環(huán)語句DO循環(huán)(又稱為計(jì)數(shù)DO循環(huán)) DO計(jì)數(shù)變量=起始值TO結(jié)束值BY步長(zhǎng);循環(huán)體……; END;循環(huán)體由一個(gè)或多個(gè)程序語句構(gòu)成。計(jì)數(shù)變量、起始值、結(jié)束值、步長(zhǎng)應(yīng)該是相同數(shù)據(jù)類型的變量。在一般情況下,當(dāng)步長(zhǎng)大于0時(shí),起始值應(yīng)小于結(jié)束值;當(dāng)步長(zhǎng)小于0時(shí),起始值應(yīng)大于結(jié)束值。7.循環(huán)語句52Databb;dox=100to5000by50;y=SQRT(x);ify>=50thenCONTINUE;z=Log(x);output;formatx8.3y20.5z20.5;end;run;

這個(gè)程序?qū)?00到5000之間的值每隔50計(jì)算一次平方根,規(guī)定變量x,y,z的輸出格式分別為8.3、20.5、20.5。如果平方根值大于等于50則不計(jì)算不方根,而直接考慮下一個(gè)值。Databb;53DOWHILE當(dāng)型循環(huán)DOWHILE(循環(huán)繼續(xù)條件); 循環(huán)體語句……; END;dataq;y=1;dox=1to50by5while(y<100);y=y*x;end;run;DOWHILE當(dāng)型循環(huán)54DOUNTIL直到型循環(huán)DOUNTIL(循環(huán)退出條件); 循環(huán)體語句……; END;datadd;x=5;do

until(x>50);y=x*x;x=x+1;output;end;run;DOUNTIL直到型循環(huán)558、常量8、常量569、變量9、變量5710、運(yùn)算符10、運(yùn)算符58第二章軟件介紹課件59第二章軟件介紹課件60七、數(shù)據(jù)集操作數(shù)據(jù)集文件的基本操作數(shù)據(jù)集的導(dǎo)出/導(dǎo)入數(shù)據(jù)集的編輯與整理七、數(shù)據(jù)集操作數(shù)據(jù)集文件的基本操作61數(shù)據(jù)集文件的基本操作1、文件復(fù)制2.文件瀏覽3.SAS數(shù)據(jù)文件瀏覽4.為數(shù)據(jù)文件建立快捷方式數(shù)據(jù)集文件的基本操作1、文件復(fù)制62如果有錯(cuò)誤還會(huì)用紅色指示錯(cuò)誤。行保持標(biāo)示符@和@@Obsnamesexmathchineseavg將數(shù)據(jù)集中數(shù)據(jù)列表輸出;下表列出一些常用的過程步名及功能。dataahualian.張聰男98109其中“選擇表達(dá)式”是一個(gè)計(jì)算結(jié)果為數(shù)值或字符的表達(dá)式,“值列表”由一個(gè)或者若干項(xiàng)構(gòu)成,各項(xiàng)之間用逗號(hào)分隔,每項(xiàng)可以是一個(gè)與選擇表達(dá)式具有相同數(shù)據(jù)類型的常量或表達(dá)式。例如1962年3月20日被為數(shù)據(jù)文件建立快捷方式行保持標(biāo)示符@和@@……procsortdata=mysas.,輸出格式可以是MMDDYY6.SAS是用于決策支持的大型集成信息系統(tǒng),但該軟件系統(tǒng)最早的功能限于統(tǒng)計(jì)分析,至今,統(tǒng)計(jì)分析功能也仍是它的重要組成部分和核心功能。年月日6位例:971220注意:輸出的日期格式長(zhǎng)度一般應(yīng)與日期的輸入格式一致。例如:optionsnonumbernodatelinesize=78pagesize=60;procmeansdata=data_prg.TITLE標(biāo)題語句對(duì)于已經(jīng)事先創(chuàng)立的永久SAS數(shù)據(jù)集,如果已建立了邏輯庫,當(dāng)需要在某個(gè)過程步中調(diào)用它時(shí),那么我們不必重復(fù)定義邏輯庫,而需要在該過程步中加上選項(xiàng):data=mySAS.數(shù)據(jù)集的導(dǎo)出/導(dǎo)入導(dǎo)出SAS數(shù)據(jù)集程序:dcsj.sas外部數(shù)據(jù)導(dǎo)入SAS數(shù)據(jù)集程序:drsj.sas

如果有錯(cuò)誤還會(huì)用紅色指示錯(cuò)誤。數(shù)據(jù)集的導(dǎo)出/導(dǎo)入導(dǎo)出SAS63讀入外部數(shù)據(jù)文件程序:dqsj.sasdatastu;infile‘d:\mysas\stu.txt';inputname$1-10sex$mathchinese;run;procprint;run;注意:INFILE語句要寫在INPUT語句之前,INFILE語句就不再有CARDS語句和空語句。讀入外部數(shù)據(jù)文件程序:dqsj.sas64數(shù)據(jù)集的編輯與整理數(shù)據(jù)集變量名與類型的更改數(shù)據(jù)集變量、觀測(cè)記錄的增加與篩選數(shù)據(jù)集排序數(shù)據(jù)集的縱向連接數(shù)據(jù)集的橫向合并數(shù)據(jù)合并的菜單操作程序:

sjcz.sas數(shù)據(jù)集的編輯與整理數(shù)據(jù)集變量名與類型的更改65libnameahualian'd:\mysas';/*數(shù)據(jù)縱向連接\橫向連接*/dataa1;inputidmath;cards;189290;run;dataa2;inputidmathenglish;cards;2908438286;run;dataahualian.a3;seta1a2;run;dataahualian.a4;mergea1a2;byid;run;procprint;run;dataahualian.Stu02;inputname$1-10sex$mathenglish;avg=math/120*100*0.5+english*0.5;cards;王紅F8973李明M9168徐凱歌M8778吳青云F9284李清華F9278張萍江M8778;run;/*更改變量名、增加新變量*/dataahualian.stu04;/*建立數(shù)據(jù)stu04*/setahualian.stu02;/*復(fù)制數(shù)據(jù)stu02*/renameavg=avg_memath=mathmatics;/*更改變量名*/total=math+english;/*增加新變量*/run;/*保留、刪除變量*/dataahualian.stu05;setahualian.stu02;keepnamemathEnglish;run;dataahualian.stu06(keep=namemathEnglish);setahualian.stu02;run;dataahualian.stu07;setahualian.stu02;dropsexavg;run;dataahualian.stu08(drop=sexavg);setahualian.stu02;run;/*數(shù)據(jù)篩選*/dataahualian.stu09;setahualian.stu02;ifmath<90thendelete;run;dataahualian.stu10;setahualian.stu02;ifmath>=90;run;procprint;run;libnameahualian'd:\mysas';66第二章軟件介紹第二章軟件介紹67第二章SAS軟件介紹SAS系統(tǒng)概述初識(shí)SASSAS程序的使用常識(shí)SAS數(shù)據(jù)步SAS程序的過程步SAS語言入門SAS數(shù)據(jù)集操作第二章SAS軟件介紹SAS系統(tǒng)概述68一、SAS系統(tǒng)概述SAS系統(tǒng)全稱為StatisticsAnalysisSystem,最早由北卡羅來納大學(xué)的兩位生物統(tǒng)計(jì)學(xué)研究生編制,并于1976年成立了SAS軟件研究所,正式推出了SAS軟件。SAS是用于決策支持的大型集成信息系統(tǒng),但該軟件系統(tǒng)最早的功能限于統(tǒng)計(jì)分析,至今,統(tǒng)計(jì)分析功能也仍是它的重要組成部分和核心功能。SAS現(xiàn)在的版本為9.1版,大小約為1.5G。經(jīng)過多年的發(fā)展,SAS已被全世界120多個(gè)國(guó)家和地區(qū)的近三萬家機(jī)構(gòu)所采用,直接用戶則超過三百萬人,遍及金融、醫(yī)藥衛(wèi)生、生產(chǎn)、運(yùn)輸、通訊、政府和教育科研等領(lǐng)域。一、SAS系統(tǒng)概述SAS系統(tǒng)全稱為StatisticsAn69在英美等國(guó),能熟練使用SAS進(jìn)行統(tǒng)計(jì)分析是許多公司和科研機(jī)構(gòu)選材的條件之一。在數(shù)據(jù)處理和統(tǒng)計(jì)分析領(lǐng)域,SAS系統(tǒng)被譽(yù)為國(guó)際上的標(biāo)準(zhǔn)軟件系統(tǒng),并在96~97年度被評(píng)選為建立數(shù)據(jù)庫的首選產(chǎn)品??胺Q統(tǒng)計(jì)軟件界的巨無霸。在此僅舉一例如下:在以苛刻嚴(yán)格著稱于世的美國(guó)FDA新藥審批程序中,新藥試驗(yàn)結(jié)果的統(tǒng)計(jì)分析規(guī)定只能用SAS進(jìn)行,其他軟件的計(jì)算結(jié)果一律無效!哪怕只是簡(jiǎn)單的均數(shù)和標(biāo)準(zhǔn)差也不行!由此可見SAS的權(quán)威地位。在英美等國(guó),能熟練使用SAS進(jìn)行統(tǒng)計(jì)分析是許多公司和科研機(jī)構(gòu)70SAS系統(tǒng)是集數(shù)據(jù)分析、生成報(bào)表于一體的一種集成軟件系統(tǒng)。它由基本部分和外加模塊組成:基本部分:BASESAS部分;統(tǒng)計(jì)分析計(jì)算部分:SAS/STAT;繪圖部分:SAS/GRAPH;矩陣運(yùn)算部分:SAS/IML;運(yùn)籌學(xué)和線性規(guī)劃:SAS/OR;經(jīng)濟(jì)預(yù)測(cè)和時(shí)間序列分析:SAS/ETS;質(zhì)量控制模塊:SAS/QC快速數(shù)據(jù)處理的交互式菜單系統(tǒng)模塊:SAS/FSP交互式全屏幕軟件應(yīng)用系統(tǒng)模塊:SAS/AFSAS系統(tǒng)是集數(shù)據(jù)分析、生成報(bào)表于一體的一種集成軟件系統(tǒng)。71二、初識(shí)SAS

安裝SAS9.1幾個(gè)注意點(diǎn):修改系統(tǒng)時(shí)間到2006年12月31日前選擇許可軟件

二、初識(shí)SAS安裝SAS9.172啟動(dòng)SAS啟動(dòng)SAS73DATA步中的常用語句avg=math/120*100*0.SAS對(duì)程序的書寫格式比較靈活,大小寫一般不區(qū)分(字符串中要區(qū)分大小寫);功能:輸入值嚴(yán)格按指定列號(hào)順序獲取。下述程序則是復(fù)合的IF結(jié)構(gòu)。DOWHILE(循環(huán)繼續(xù)條件); 循環(huán)體語……procsortdata=mysas.當(dāng)變量的值為日期類型或時(shí)間類型時(shí),用戶必須規(guī)定變量的WHEN(值列表2)語句2;……Sinefunctionvalueof0.SAS有三個(gè)最重要的子窗口:程序窗口(PROGRAMEDITOR)、運(yùn)行記錄窗口(LOG)、輸出窗口(OUTPUT)。INPUTWEIGHT;,指字符串長(zhǎng)度為12位。擬合Logistic回歸模型張紅藝女89106則規(guī)定顯示頁號(hào)),NODATE表示不在每頁顯示運(yùn)行SAS程序由語句組成,語句用分號(hào)結(jié)束。數(shù)據(jù)集變量、觀測(cè)記錄的增加與篩選title'0901班學(xué)生成績(jī)排名';它由基本部分和外加模塊組成:SAS有三個(gè)最重要的子窗口:程序窗口(PROGRAMEDITOR)、運(yùn)行記錄窗口(LOG)、輸出窗口(OUTPUT)。簡(jiǎn)單運(yùn)行樣例

假設(shè)我們有一個(gè)班學(xué)生的數(shù)學(xué)成績(jī)和語文成績(jī),數(shù)學(xué)滿分為100,語文滿分為120,希望計(jì)算學(xué)生的平均分?jǐn)?shù)(按百分制)并按此排名,可以在程序窗口輸入此程序:DATA步中的常用語句SAS有三個(gè)最重要的子窗口:程序窗口(74title'0901班學(xué)生成績(jī)排名';libnamea‘d:\’;/*環(huán)境設(shè)置語句*/dataa.c0901;inputname$1-10sex$mathchinese;avg=math*0.5+chinese/120*100*0.5;cards;李明男9298張紅藝女89106王思明男8690張聰男98109劉潁女80110;run;procprint;run;procsortdata=a.c0901;bydescendingavg;/*按平均成績(jī)降序排序*/run;procprint;run;title'0901班學(xué)生成績(jī)排名';75實(shí)際上,上述程序是文本,完全可以在任何文本編輯工具中輸入,比如Windows中的記事本,甚至Word也可用來輸入這樣包含中文的程序。輸入后使用復(fù)制復(fù)制、粘貼命令將輸入的程序粘貼到SAS系統(tǒng)程序窗口。(即在記事本中復(fù)制輸入的程序,然后在SAS系統(tǒng)程序窗口中使用粘貼命令,把程序復(fù)制到SAS中)。要運(yùn)行此程序,只要用鼠標(biāo)單擊工具欄的提交(Submit)圖標(biāo),或用Run菜單下的Submit命令,或者直接按下F8鍵,就可運(yùn)行程序。如果選中某一段程序,然后進(jìn)行調(diào)用,則系統(tǒng)只執(zhí)行被選中的部分。實(shí)際上,上述程序是文本,完全可以在任何文本編輯工具中輸入,比76運(yùn)行后,輸出窗口出現(xiàn)如下結(jié)果:0901班學(xué)生成績(jī)排名Obsnamesexmathchineseavg1李明男929886.83332張紅藝女8910688.66673王思明男869080.50004張聰男9810994.41675劉潁女8011085.8333運(yùn)行記錄窗口則記錄每段程序的運(yùn)行情況、所用時(shí)間、生成數(shù)據(jù)保存情況。如果有錯(cuò)誤還會(huì)用紅色指示錯(cuò)誤。運(yùn)行后,輸出窗口出現(xiàn)如下結(jié)果:77三、SAS程序的使用常識(shí)

從上面的例子程序可以看出SAS程序的一些特點(diǎn)。SAS程序的基本結(jié)構(gòu)SAS程序由語句組成,語句用分號(hào)結(jié)束。語句一般由特定的關(guān)鍵詞開始,語句中可包含變量名、運(yùn)算符等,它們以空格分隔。SAS對(duì)語句所占的行數(shù)無限制,一個(gè)語句可占多行,同樣,多個(gè)語句也可占一行。SAS對(duì)程序的書寫格式比較靈活,大小寫一般不區(qū)分(字符串中要區(qū)分大小寫);三、SAS程序的使用常識(shí)從上面的例子程序可以看出SAS程序78SAS程序的程序注釋有以下兩種格式:增強(qiáng)程序可讀性注釋語句:以星號(hào)“*”開始,可占多行,以分號(hào)“;”結(jié)束?!?*該段有待核實(shí)*/注釋段落:用“/*”和“*/”包括起來的任何字符,可占多行。SAS程序的程序組成SAS程序可以非常復(fù)雜,但其基本結(jié)構(gòu)一般由數(shù)個(gè)完成單個(gè)動(dòng)作的環(huán)境設(shè)置語句和程序步構(gòu)成。而程序步分為兩種,一種叫數(shù)據(jù)步(datastep),一種叫過程步(procstep),分別以DATA語句和PROC語句開始。數(shù)據(jù)步和過程步由若干個(gè)語句組成,一般以RUN語句結(jié)束。

SAS程序的程序注釋有以下兩種格式:增強(qiáng)程序可讀性79數(shù)據(jù)集(dataset)和庫

SAS數(shù)據(jù)集(SASDatasets)可以看作由若干行和若干列組成的表格,類似于一個(gè)矩陣,但各列可以取不同的類型值,比如整數(shù)值、浮點(diǎn)值、時(shí)間值、字符串、貨幣值等等。比如,前面的例子生成了一個(gè)名為C0401的數(shù)據(jù)集,它的邏輯形式如下表:數(shù)據(jù)集(dataset)和庫80NAMESEXMATHCHINESEAVG李明男929886.8333張紅藝女8910688.6667王思明男869080.5000張聰男9810994.4167劉潁女8011085.8333表1數(shù)據(jù)集的邏輯形式NAMESEXMATHCHINESEAVG李明男92988681數(shù)據(jù)集的每一行叫做一個(gè)觀測(cè)(Observation),每列叫做一個(gè)變量(Variable)。在數(shù)據(jù)庫術(shù)語中一個(gè)觀測(cè)稱作一個(gè)記錄,一個(gè)變量稱作一個(gè)域。SAS數(shù)據(jù)集等價(jià)于關(guān)系數(shù)據(jù)庫系統(tǒng)中的一個(gè)表,實(shí)際上一個(gè)SAS數(shù)據(jù)集有時(shí)也稱作一個(gè)表。從上面看出,數(shù)據(jù)集要有名字,變量要有名字,所以SAS中對(duì)名字(數(shù)據(jù)集名、變量名、數(shù)據(jù)庫名,等等)有約定:SAS名字由英文字母、數(shù)字、下劃線組成,第一個(gè)字符必須是字母或下劃線,名字最多用8個(gè)字符,大寫字母和小寫字母不區(qū)分。比如,name,abc,aBC,x1,year12,_NULL_等是合法的名字,且abc和aBC是同一個(gè)名字,而class-1(不能有減號(hào))、abit(不能有空格)、serial#(不能有特殊字符)、Documents(超長(zhǎng))等不是合法的名字。

數(shù)據(jù)集的每一行叫做一個(gè)觀測(cè)(Observation),每列叫82邏輯庫SAS系統(tǒng)將所使用的文件以庫的形式組織起來,而數(shù)據(jù)集則存放在一個(gè)庫中,這個(gè)庫就稱為邏輯庫。前面見到過的libname命令就用于指定庫標(biāo)記。其一般格式為:

Libname庫名稱‘文件夾位置’選項(xiàng);引用在邏輯庫中數(shù)據(jù)集時(shí)要使用兩級(jí)名稱來指定,第一級(jí)為庫名稱,第二級(jí)為數(shù)據(jù)集名,中間用句點(diǎn)“.”隔開,即:庫名稱.數(shù)據(jù)集名libnamea‘d:\’;dataa.c0901;……procsortdata=a.c0901;……

邏輯庫83通過SAS命令菜單方式建立邏輯庫名與子目錄的連接:操作過程為:進(jìn)入Explorer窗口/右擊(Library)圖標(biāo)/選擇“new…”命令/在彈出的窗口(見圖1-4)的name欄中輸入庫名/在Path欄中輸入目錄路徑或點(diǎn)擊右側(cè)的“Browse”按鈕選擇磁盤中的文件夾/選中右側(cè)的“Enableatstartup”使其永久有效,然后點(diǎn)“OK”完成新庫名的定義。通過SAS命令菜單方式建立邏輯庫名與子目錄的連接:操作過程為84第二章軟件介紹課件85SAS文件分類SAS文件本質(zhì)上可以分為臨時(shí)文件和永久文件兩類:臨時(shí)文件在退出SAS系統(tǒng)時(shí)自動(dòng)被刪除,永久文件則會(huì)長(zhǎng)期保留在磁盤中。所以,在應(yīng)用過程中,我們通常把中間結(jié)果數(shù)據(jù)集或練習(xí)數(shù)據(jù)集作為臨時(shí)數(shù)據(jù)集文件保存,而將以后需要使用的數(shù)據(jù)集保存為永久數(shù)據(jù)集。SAS文件分類86永久數(shù)據(jù)集操作1.生成永久數(shù)據(jù)集的實(shí)例如下:把數(shù)據(jù)集放入指定的子目錄"d:\SAS2007"中,在程序中可以用如下語句建立邏輯庫,除work邏輯庫以外的其它邏輯庫中的數(shù)據(jù)集,都可以做為永久數(shù)據(jù)集保存:

libnamemysas"d:\SAS2007";datamysas.stu01;……procsortdata=mysas.stu01;……2.對(duì)于已經(jīng)事先創(chuàng)立的永久SAS數(shù)據(jù)集,如果已建立了邏輯庫,當(dāng)需要在某個(gè)過程步中調(diào)用它時(shí),那么我們不必重復(fù)定義邏輯庫,而需要在該過程步中加上選項(xiàng):data=mySAS.stu,以指明要使用的數(shù)據(jù)集。永久數(shù)據(jù)集操作87INPUTNAME$AGE;PROCPRINT;在使用帶有BY語句的過程步之前,應(yīng)先用SORT過程按BY語句指定的變量對(duì)數(shù)據(jù)集排序。x=2*x;例如1962年3月20日被SAS程序的使用常識(shí)VAR語句在過程步中用于指定分析變量。RUN;例c:INPUT(Nameprice1-price6)($12.則結(jié)果在LOG窗口顯示為#N:指明從第N行開始讀數(shù)據(jù)。日月年7位例:20DEC97日期和時(shí)間(改用DATE則顯示),LINESIZE=78規(guī)定數(shù)據(jù)集(dataset)和庫運(yùn)行后,輸出窗口出現(xiàn)如下結(jié)果:libnamemysas"d:\SAS2007";datamysas.Sinefunctionvalueof0.INPUT(變量1-變量N)(輸入格式描述符);1李明男929886.3,效果為523458.5劉潁女8011085.四、SAS數(shù)據(jù)步簡(jiǎn)介DATA步基本結(jié)構(gòu):DATA數(shù)據(jù)集名;INPUT變量名1[$]變量名2[$]……變量名n[$];CARDS;源數(shù)據(jù)行;RUN;備注:當(dāng)數(shù)據(jù)中有“;”時(shí),cards改為cards4,數(shù)據(jù)以“;;;;”作為結(jié)束對(duì)應(yīng)INPUTNAME$AGE;四、SAS數(shù)據(jù)步簡(jiǎn)88Data步語句說明:SAS處理的數(shù)據(jù)可分為:字符型、數(shù)值型兩大類,日期型數(shù)據(jù)屬于數(shù)值型。字符型變量名后必須使用$說明符。每行數(shù)據(jù)的行尾不能有分號(hào)“;”,但數(shù)據(jù)行結(jié)束后的”;”分號(hào)必須單獨(dú)占一行。變量名不分大小寫。Data步語句說明:SAS處理的數(shù)據(jù)可分為:字符型、數(shù)值型兩89DATA步中的INPUT語句INPUT語句具有的四種使用格式:1)列標(biāo)識(shí)方式(COLUMN)格式:INPUT變量名1[$]起始列-終止列變量名2[$]起始列-終止列…變量名n[$]起始列-終止列;功能:輸入值嚴(yán)格按指定列號(hào)順序獲取。注意:字符型數(shù)據(jù)中可鑲嵌空格,數(shù)據(jù)最長(zhǎng)為200個(gè)字符,字符型變量要跟一個(gè)$字符。例如:INPUTNAME$1-12SEX$13AGE14-15;DATA步中的INPUT語句INPUT語句具有的四種使用902)自由格式:格式:INPUT變量名1[$]變量名2[$]…變量n[$];語句的功能與特點(diǎn):說明:數(shù)據(jù)項(xiàng)之間要至少用一個(gè)空格分隔。字符型數(shù)據(jù)中間不能有空格,且最長(zhǎng)為200個(gè)字符。用小數(shù)點(diǎn)‘.’表示數(shù)值型數(shù)據(jù)的缺失值。每個(gè)字段變量要按順序排列。例如:INPUTNAME$SEX$AGE;2)自由格式:913)格式輸入:格式:INPUT指針控制變量輸入格式描述符;指針控制:@N指針轉(zhuǎn)向第N列;(絕對(duì)移動(dòng))+N指針向右移N列;(相對(duì)移動(dòng))常用SAS變量輸入格式描述符說明:W.:寬度為W位標(biāo)準(zhǔn)數(shù)字,應(yīng)用實(shí)例:8.,指數(shù)值型數(shù)據(jù)長(zhǎng)為8個(gè)字符,且小數(shù)點(diǎn)位為零位。W.D:含小數(shù)點(diǎn)的標(biāo)準(zhǔn)數(shù)字,數(shù)字總長(zhǎng)度為W位,其中包括小數(shù)點(diǎn)占1位,小數(shù)占D位,以及正負(fù)符號(hào)占一位,所以所描述數(shù)據(jù)的整數(shù)部分的位數(shù)最多為W-D-2位。應(yīng)用實(shí)例:10.3,效果為523458.356。3)格式輸入:92$W.:長(zhǎng)度為W的標(biāo)準(zhǔn)字符串,應(yīng)用實(shí)例:$12.,指字符串長(zhǎng)度為12位。COMMAW.D:長(zhǎng)度位為W的數(shù)字,其中小數(shù)點(diǎn)占一位,小數(shù)部分占D位,正負(fù)號(hào)占一位,數(shù)據(jù)的整數(shù)部分每3位有一個(gè)逗號(hào)分隔符,逗號(hào)也占字符串寬度。應(yīng)用實(shí)例:COMMA12.1,效果為:63,145,690.5。$CHARW.:寬度為W,含有空格的字符串。有格式說明就不需用列方式,列方式與格式方式只能選其一,不能兩者同用。例:INPUTNAME$12.@14SEX$+2AGE2.@25SALECOMMA10.2;$W.:長(zhǎng)度為W的標(biāo)準(zhǔn)字符串,應(yīng)用實(shí)例:$12.,指字符串93日期數(shù)據(jù)格式:SAS系統(tǒng)日期數(shù)據(jù)以1960年1月1日為起始日,系統(tǒng)以距離起始日期的總天數(shù)記錄實(shí)際日期。例如1962年3月20日被存儲(chǔ)為809,表示此日期與1960年1月1日相距809天。所以,當(dāng)變量的值為日期類型或時(shí)間類型時(shí),用戶必須規(guī)定變量的輸入和輸出格式。例如1997年12月20日,可用下列日期格式表示:MMDDYY6.月日年6位例:122097MMDDYY8.月日年8位例:12/20/97或12-20-97或12201997DDMMYY6.日月年6位例:201297YYMMDD6.年月日6位例:971220DATE7.日月年7位例:20DEC97DATE9.日月年9位例:2ODEC1997MMDDYY10.月日年10位例:12/20/1997或12-20-1997日期數(shù)據(jù)格式:94SAS系統(tǒng)全稱為StatisticsAnalysisSystem,最早由北卡羅來納大學(xué)的兩位生物統(tǒng)計(jì)學(xué)研究生編制,并于1976年成立了SAS軟件研究所,正式推出了SAS軟件。DATA步中的INPUT語句四、SAS數(shù)據(jù)步簡(jiǎn)介’表示數(shù)值型數(shù)據(jù)的缺失值。Libname庫名稱‘文件夾位置’選項(xiàng);x=2*x;在此僅舉一例如下:在以苛刻嚴(yán)格著稱于世的美國(guó)FDA新藥審批程序中,新藥試驗(yàn)結(jié)果的統(tǒng)計(jì)分析規(guī)定只能用SAS進(jìn)行,其他軟件的計(jì)算結(jié)果一律無效!備注:當(dāng)數(shù)據(jù)中有“;”時(shí),cards改為cards4,數(shù)據(jù)以“;;;;”作為結(jié)束對(duì)應(yīng)inputname$1-10sex$mathenglish;VAR語句的語法格式為:頁有一行標(biāo)題,內(nèi)容為“TheSASSystem”。為數(shù)據(jù)文件建立快捷方式注:其中Else語句及其后的程序塊可以省略。inputname$1-10sex$mathchinese;MODEL語句在統(tǒng)計(jì)建模過程中用來指定模型的形式。數(shù)據(jù)步和過程步由若干個(gè)語句組成,一般以RUN語句結(jié)束。經(jīng)過多年的發(fā)展,SAS已被全世界120多個(gè)國(guó)家和地區(qū)的近三萬家機(jī)構(gòu)所采用,直接用戶則超過三百萬人,遍及金融、醫(yī)藥衛(wèi)生、生產(chǎn)、運(yùn)輸、通訊、政府和教育科研等領(lǐng)域。/:從下一行第一列開始讀數(shù)據(jù)。libnamea‘d:\’;/*環(huán)境設(shè)置語句*/對(duì)于已經(jīng)事先創(chuàng)立的永久SAS數(shù)據(jù)集,如果已建立了邏輯庫,當(dāng)需要在某個(gè)過程步中調(diào)用它時(shí),那么我們不必重復(fù)定義邏輯庫,而需要在該過程步中加上選項(xiàng):data=mySAS.例:日期與時(shí)間的格式應(yīng)用:DATADAYS;INPUTBIRTHDAYMMDDYY8.+1INDAYMMDDYY8.+1TESTDAYDATE9.;CARDS;08-04-8307/14/9020SEP199011-14-8307/26/9020SEP1990;注意:輸出的日期格式長(zhǎng)度一般應(yīng)與日期的輸入格式一致。如輸入格式為MMDDYY6.,輸出格式可以是MMDDYY6.或MMDDYY8.。如果輸出格式為MMDDYY10.,就會(huì)產(chǎn)生輸出錯(cuò)誤。SAS系統(tǒng)全稱為StatisticsAnalysisSy954)組格式輸入:組格式輸入語法格式:INPUT(變量1-變量N)(輸入格式描述符);

例a:INPUT(x1-x5)(4.);

/*變量x1-x5最多為4位整數(shù)*/

例b:INPUT(aabb)($8.,7.2);(變量aa為8位長(zhǎng)的字符型數(shù)據(jù),變量bb為7位長(zhǎng),且小數(shù)為2位的數(shù)值型數(shù)據(jù))

例c:INPUT(Nameprice1-price6)($12.6*8.1);(變量Name為12位長(zhǎng)的字符,price1-price6共6個(gè)變量均為8位長(zhǎng)的數(shù)值,小數(shù)為1位)4)組格式輸入:96高級(jí)輸入格式控制描述符:行保持標(biāo)示符@和@@@:CARDS語句中的數(shù)據(jù)一行為一條觀測(cè)記錄,用多條INPUT語句讀入。@@:CARDS語句中的數(shù)據(jù)一行為多條觀測(cè)記錄,用一條INPUT語句讀入。/:從下一行第一列開始讀數(shù)據(jù)。#N:指明從第N行開始讀數(shù)據(jù)。高級(jí)輸入格式控制描述符:97例:數(shù)據(jù)步中所有的INPUT語句完成一個(gè)觀測(cè)記錄的數(shù)據(jù)輸入:

DATAA;INPUTNAME$AGE;/*此語句應(yīng)改寫為:INPUTNAME$AGE@;*/INPUTWEIGHT;CARDS;ZHANG2375.6XIAO1232WEI1430;RUN;PROCPRINT;RUN;例:數(shù)據(jù)步中所有的INPUT語句完成一個(gè)觀測(cè)記錄的數(shù)據(jù)輸入98五、SAS程序的過程步

通俗地說,SAS程序的過程步就是用于實(shí)現(xiàn)各種統(tǒng)計(jì)分析功能的SAS命令,我們只需要按照其格式調(diào)用它們。過程步總是以一個(gè)proc語句開始,后面緊跟著過程步名。下表列出一些常用的過程步名及功能。五、SAS程序的過程步通俗地說,SAS程序的過程步就是用于99過程步名功能Sort將數(shù)據(jù)集按指定變量排序Print將數(shù)據(jù)集中數(shù)據(jù)列表輸出Gchart繪統(tǒng)計(jì)圖Univariate對(duì)指定的數(shù)值變量作詳細(xì)的統(tǒng)計(jì)描述Means對(duì)指定的數(shù)值變量作簡(jiǎn)單的統(tǒng)計(jì)描述Freq對(duì)指定的分類變量作統(tǒng)計(jì)描述和檢驗(yàn)Npar1way非參數(shù)檢驗(yàn)Ttest進(jìn)行t檢驗(yàn)Anova進(jìn)行方差分析GLM擬合一般線性模型REG擬合線性回歸模型Corr進(jìn)行相關(guān)分析Logistic擬合Logistic回歸模型Phreg擬合cox比例風(fēng)險(xiǎn)模型過程步名功能Sort將數(shù)據(jù)集按指定變量排序Print將數(shù)據(jù)集100SAS是用于決策支持的大型集成信息系統(tǒng),但該軟件系統(tǒng)最早的功能限于統(tǒng)計(jì)分析,至今,統(tǒng)計(jì)分析功能也仍是它的重要組成部分和核心功能。/*變量x1-x5最多為4位整數(shù)*/行保持標(biāo)示符@和@@@14SEX$+2AGE2.IFx>0THENDO;為數(shù)據(jù)文件建立快捷方式procmeansdata=data_prg.例如1997年12月20日,可用下列日期格式表示:5+chinese/120*100*0.DOWHILE(循環(huán)繼續(xù)條件); 循環(huán)體語y=SQRT(x);說明:上述三種語句一般稱為“全程語句”!dataahualian.通過SAS命令菜單方式建立邏輯庫名與子目錄的連接:操作過程為:進(jìn)入Explorer窗口/右擊(Library)圖標(biāo)/選擇“new…”命令/在彈出的窗口(見圖1-4)的name欄中輸入庫名/在Path欄中輸入目錄路徑或點(diǎn)擊右側(cè)的“Browse”按鈕選擇磁盤中的文件夾/選中右側(cè)的“Enableatstartup”使其永久有效,然后點(diǎn)“OK”完成新庫名的定義。titl

溫馨提示

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

評(píng)論

0/150

提交評(píng)論