The little SAS book 學(xué)習(xí)筆記_13330_第1頁(yè)
The little SAS book 學(xué)習(xí)筆記_13330_第2頁(yè)
The little SAS book 學(xué)習(xí)筆記_13330_第3頁(yè)
The little SAS book 學(xué)習(xí)筆記_13330_第4頁(yè)
The little SAS book 學(xué)習(xí)筆記_13330_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、The little SAS book 學(xué)習(xí)筆記 jiayounet 第四章 排序、打印并描述你的數(shù)據(jù)4.1 使用SAS過(guò)程步使用過(guò)程步就像填寫一個(gè)如左圖的表格,當(dāng)然每個(gè)過(guò)程步都有獨(dú)特的地方,本部分主要討論各過(guò)程步相同的地方:大部分過(guò)程步都有一個(gè)必須的語(yǔ)句,也有可選的語(yǔ)句,比如打印語(yǔ)句:proc print,這兩個(gè)詞是必須的,但可選的語(yǔ)句也有很多。Proc語(yǔ)句 所有的語(yǔ)句的必須部分為proc+過(guò)程名,比如print、contents等。后面接一些可選項(xiàng)。比如proc print data=banana;data=banana選項(xiàng)告訴SAS打印哪個(gè)文件,如果不加,則SAS默認(rèn)打印最近使用的數(shù)據(jù)。

2、前面還可以家libname語(yǔ)句,建立一個(gè)對(duì)本地文件的鏈接(2.20),比如:LIBNAME tropical c:MySASLib; PROC CONTENTS DATA=tropical.banana;或者直接引用(2.21):PROC CONTENTS DATA=c:MySASLibbanana;BY語(yǔ)句 BY語(yǔ)句只在過(guò)程proc sort中是必須的,它用來(lái)對(duì)觀測(cè)值排序。其他過(guò)程BY告訴過(guò)程對(duì)變量進(jìn)行分別分析,且是可選的。比如要對(duì)每個(gè)州進(jìn)行分別分析,則為:BY State另外,除了proc sort,其他過(guò)程都假設(shè)了數(shù)據(jù)已經(jīng)進(jìn)行了排序,所以如果數(shù)據(jù)還沒(méi)有排序,那么在分析之前要用proc s

3、ort排序。TITLE 和FOOTNOTE語(yǔ)句 這是為輸出加上標(biāo)題和腳注。最基本的title語(yǔ)句為:title 標(biāo)題,雙引號(hào)、單引號(hào)皆可,比如:TITLEThis is a title;如果標(biāo)題中帶有撇號(hào),則需用雙引號(hào),或者將撇號(hào)換為雙撇號(hào):TITLE”Heres another title”;TITLEHeres another title;可以通過(guò)在tile、footnote后面加上數(shù)字來(lái)添加多個(gè)標(biāo)題和腳注,F(xiàn)OOTNOTE3This is the third footnote;但是小數(shù)字的標(biāo)題會(huì)代替大數(shù)字的標(biāo)題,如title2會(huì)代替title3。標(biāo)題的去處可以用title+空值:TITL

4、E;Label語(yǔ)句 它可以為輸出的變量加上標(biāo)簽,一個(gè)標(biāo)簽最大256字節(jié),下面的代碼為receivedate和shipdate創(chuàng)建了標(biāo)簽:LABEL ReceiveDate=Date order was receivedShipDate=Date merchandise was shipped;注意的是,在數(shù)據(jù)步中使用label語(yǔ)句,則標(biāo)簽會(huì)保存在數(shù)據(jù)集中;在過(guò)程步中使用,標(biāo)簽只在這個(gè)過(guò)程中有效。定制輸出 使用系統(tǒng)選項(xiàng),可以為輸出設(shè)置諸如居中、日期、單行長(zhǎng)度、頁(yè)長(zhǎng)度等。使用Output Delivery System,還可以改變輸出的風(fēng)格,以不同的格式輸出(HTML、RTF),甚至改變輸出的任何

5、細(xì)節(jié)。輸出數(shù)據(jù)集 可以用ODS OUTPUT語(yǔ)句為輸出結(jié)果創(chuàng)立一個(gè)數(shù)據(jù)集(5.3),一些過(guò)程中也可以用out=option。4.2 用where語(yǔ)句在過(guò)程中構(gòu)造子集也可以用where構(gòu)造子集,它方便快捷,因?yàn)樗粍?chuàng)建新的數(shù)據(jù)集。且能夠用在過(guò)程步中。Where語(yǔ)句的基本形式為:WHERE condition;只有滿足條件的觀測(cè)值才進(jìn)行proc過(guò)程。一些使用最多的操作符及例子:例子 有一份關(guān)于畫家的數(shù)據(jù),artists.dat,包含畫家的姓名、主要風(fēng)格、國(guó)籍:第一步首先是數(shù)據(jù)步,讀取數(shù)據(jù)、使用直接指代在C盤mysaslib目錄下創(chuàng)建一個(gè)名為style的數(shù)據(jù)集。某天如果想打印出印象派impressi

6、onism畫家的情況,那么可以使用where語(yǔ)句輸出結(jié)果為:4.3 用proc sort為數(shù)據(jù)排序基本形式為:PROC SORT; BY variable-1.variable-n;SAS首先會(huì)按照第一個(gè)變量排序,再對(duì)后面的排序。Data=,out=用來(lái)指定輸入和輸出數(shù)據(jù),如果缺失out=,則SAS會(huì)將排序后的數(shù)據(jù)集代替原來(lái)的數(shù)據(jù)集。下面的代碼告訴SAS對(duì)數(shù)據(jù)messy排序,并將排序后的數(shù)據(jù)存在neat中:PROC SORT DATA=messy OUT=neat;選項(xiàng)nodupkey告訴SAS排序時(shí)刪除重復(fù)值,比如:PROC SORT DATA=messy OUT=neat NODUPKEY

7、;SAS默認(rèn)是升序,可以用選項(xiàng)DESCENDING來(lái)變成降序,將DESCENDING加在要降序的變量前面:BY State DESCENDING City;例子 下面的數(shù)據(jù)顯示了一些鯨魚和鯊魚品種的平均長(zhǎng)度:下面的代碼讀取并排序數(shù)據(jù)輸出結(jié)果為:因?yàn)镾AS認(rèn)為缺失值是比字符串和數(shù)值都小,所以排在了第一位。另外,由于whale shark 40的數(shù)據(jù)有兩個(gè),故因?yàn)閚odupkey選項(xiàng)而被刪除一個(gè)。說(shuō)明可見(jiàn)日志:4.4 用proc print打印你的數(shù)據(jù)基本形式:PROC PRINT;SAS默認(rèn)打印最近使用的數(shù)據(jù)集,DATA=可以指定數(shù)據(jù)集:PROC PRINT DATA=data-set;SAS默

8、認(rèn)打印觀測(cè)值數(shù),noobs選項(xiàng)可以取消。SAS默認(rèn)打印時(shí)用變量標(biāo)簽代替變量,用label可以改變?nèi)∠篜ROC PRINT DATA=data-set NOOBS LABEL;還有下面的選項(xiàng):BY variable-list; 前提是數(shù)據(jù)必須進(jìn)行排序ID variable-list; SUM variable-list; 打印變量總數(shù)VAR variable-list; 指定打印哪部分變量以及打印順序,默認(rèn)打印全部。例子 有學(xué)生賣糖果的數(shù)據(jù),Candy.dat,記錄學(xué)生名、所屬班級(jí)、銷售日期、賣的糖果類型、賣出的糖果數(shù)。下面的程序讀取數(shù)據(jù)、計(jì)算每個(gè)學(xué)生賺得的利潤(rùn)(每買一塊賺1.25美元),并用

9、proc sort按班級(jí)排序。接著在proc print語(yǔ)句中加入by,以分班級(jí)打印,加入sum,計(jì)算每個(gè)班級(jí)總利潤(rùn):輸出結(jié)果為:4.5 用formats改變打印外觀打印數(shù)據(jù)時(shí),SAS會(huì)自動(dòng)為你安排最好的格式,小數(shù)點(diǎn)位數(shù)、空格等。當(dāng)不需要默認(rèn)格式時(shí),可以用SAS formats改變打印的外觀。對(duì)于字符串、數(shù)值、日期變量,SAS有很多格式。比如可以用commaw.d格式打印有逗號(hào)的數(shù)字,用$w.格式控制打印的字符串?dāng)?shù),用MMDDYYw.格式將日期(以1960.1.1為基點(diǎn)的數(shù)字)打印成12/03/2003這樣的格式。甚至可以將格式打印成十六進(jìn)制、區(qū)位十進(jìn)制、壓縮十進(jìn)制等。SAS格式的普通形式為:

10、符號(hào)說(shuō)明:$說(shuō)明了是字符串、format是格式名、w是包括包括在小數(shù)點(diǎn)在內(nèi)的長(zhǎng)度、d是小數(shù)位數(shù)。句號(hào)非常重要,它用來(lái)區(qū)分格式名和變量名。Format語(yǔ)句 可以用format語(yǔ)句同時(shí)將格式和變量聯(lián)系起來(lái),用format+變量名+格式名,比如想要將格式DOLLAR8.2和變量profit、loss聯(lián)系起來(lái),把格式MMDDYY8.和格變量saledate聯(lián)系起來(lái):FORMAT Profit Loss DOLLAR8.2 SaleDate MMDDYY8.;Format可以用在數(shù)據(jù)步和過(guò)程步中,前者將把格式永久儲(chǔ)存,后者只是臨時(shí)儲(chǔ)存。Put語(yǔ)句 當(dāng)寫原始數(shù)據(jù)或者報(bào)告時(shí),也可以在put語(yǔ)句中使用form

11、ats,在每個(gè)變量后面加上格式:PUT Profit DOLLAR8.2 Loss DOLLAR8.2 SaleDate MMDDYY8.;例子 在上面的學(xué)生賣糖果的案例中,可以看到輸出的日期是SAS日期值,這里用format變換成日期格式,并且用DOLLAR6.2將利潤(rùn)換成貨幣格式,輸出結(jié)果為:4.6 可供選擇的formats下面是例子4.7 使用proc format創(chuàng)建自己的格式有時(shí)候變量值用數(shù)字代表實(shí)際的變量值,比如1代表男性,2代表女性,這種代碼在打印的時(shí)候不好解讀,可以用proc format使得打印出想要的值。基本形式為:Value語(yǔ)句中的name是格式的名字,如果格式是位字符串

12、設(shè)計(jì),則必須以$開頭,長(zhǎng)度不能超過(guò)32個(gè)字節(jié)(包括$),不能以數(shù)字結(jié)尾,除了下劃線,不能包含其他任何特殊符號(hào)。且名字不能與已有的格式名沖突。Range是分配給等號(hào)右邊文本的變量值,文本可以達(dá)到32767個(gè)字節(jié),有的過(guò)程只會(huì)打印前面8或16個(gè)字節(jié)。下面是一個(gè)例子:變量值是字符串要加上引號(hào),range不止一個(gè)值要用逗號(hào)隔開,連續(xù)的range要用-,關(guān)鍵字low和high可以用來(lái)指代變量中最小和最大的的非缺失值。也可以用來(lái)排除或指代某些范圍,other可以給任何沒(méi)有列在value語(yǔ)句中的變量分配格式。例子 有一份關(guān)于汽車公司客戶的調(diào)查信息。包括客戶年齡、性別(1為男性,2為女性)、每年收入、偏愛(ài)的汽

13、車顏色(yellow,gray,blue,or white):下面的代碼讀取數(shù)據(jù),并使用format過(guò)程為顏色、性別和汽車創(chuàng)建格式,并在打印數(shù)據(jù)時(shí)用format為變量指定這些輸出格式:輸出結(jié)果為:4.8 定制一個(gè)簡(jiǎn)單的報(bào)告數(shù)據(jù)步可以幫助在報(bào)告中完成一些個(gè)性的需求,比如一頁(yè)打印一個(gè)觀測(cè)值等。用file語(yǔ)句和put語(yǔ)句 ,基本形式為:FILEfile-specificationPRINT;如input,put語(yǔ)句也有l(wèi)ist,column,formatted方式,但因?yàn)镾AS已經(jīng)知道變量類型,因此不用符號(hào)$。且如果使用list ,SAS會(huì)自動(dòng)在兩個(gè)變量之間加上空格;使用column或者format

14、ted,SAS將會(huì)把變量放在任何你指定的地方。使用指示器n指定移動(dòng)到第n列,+n指定移動(dòng)n列,/跳動(dòng)到下一行,#n跳動(dòng)到第n行。用hold住當(dāng)前行。例子 再一次使用學(xué)生賣糖果的案例,Candy.dat,記錄學(xué)生名、所屬班級(jí)、銷售日期、賣的糖果類型、賣出的糖果數(shù)。老師想看每位學(xué)生的銷售情況,故要每頁(yè)分別打印一位學(xué)生的情況,代碼如下:Data null是告訴SAS不要寫數(shù)據(jù)集名,以便使得程序更快。File語(yǔ)句創(chuàng)建了一個(gè)輸出文件,空標(biāo)題title語(yǔ)句告訴SAS去除所有的自動(dòng)標(biāo)題。第一個(gè)put語(yǔ)句以一個(gè)指示器開頭,5,告訴SAS移動(dòng)到第5列,接著打印出“candy sales report for”,

15、后面是姓名name。變量name、class和quantity都是以list方式打印,而profit是使用formatted方式打印,并給定格式dollar6.2。一個(gè)斜杠是指跳到下一行,兩個(gè)斜杠是跳到下兩行。最后,語(yǔ)句put_age_是在每個(gè)學(xué)生報(bào)告下面插上頁(yè)碼,程序運(yùn)行后,日志說(shuō)明如下:前三頁(yè)報(bào)告如下:4.9 使用proc means描述數(shù)據(jù)可以用proc mens查看一些簡(jiǎn)單的統(tǒng)計(jì)量,Means過(guò)程開始于關(guān)鍵詞proc means,后面接需要打印的統(tǒng)計(jì)量,基本形式:PROC MEANS options;如果不加選項(xiàng),則默認(rèn)打印出非缺失值個(gè)數(shù)、均值、標(biāo)準(zhǔn)差、以及最大最小值,下面是用選項(xiàng)可以

16、查看的統(tǒng)計(jì)量:如果沒(méi)有其他語(yǔ)句,proc means語(yǔ)句會(huì)給你數(shù)據(jù)集中所有觀測(cè)值和所有數(shù)值變量的統(tǒng)計(jì)量,這里是一些可以用到的語(yǔ)句:BY variable-list; 分變量單獨(dú)分析,但數(shù)據(jù)必須先按照variable-list的變量順序排序(proc sort)。CLASS variable-list; 也是分變量單獨(dú)分析,看起來(lái)會(huì)更集中一些,且不需要排序。VAR variable-list; 指定分析中使用哪種數(shù)值變量,默認(rèn)則使用所有的數(shù)值變量。例子 有一個(gè)花朵銷售的數(shù)據(jù),F(xiàn)lowers.dat,包括顧客ID,銷售日期,petunias,snapdragons,marigolds三種花的銷售量

17、:下面的代碼讀取數(shù)據(jù),計(jì)算新變量銷售月份,month,并使用proc sort按照月份排序,并使用proc means的by語(yǔ)句來(lái)按照月份描述數(shù)據(jù):輸出結(jié)果為:4.10 將描述性統(tǒng)計(jì)寫入SAS數(shù)據(jù)集中有兩種方法可以在SAS數(shù)據(jù)集中儲(chǔ)存描述性統(tǒng)計(jì)量,Output Delivery System(ODS),或者output語(yǔ)句。前者在5.3,后者的基本形式為:OUTPUT OUT=data-set output-statistic-list;Data-set是要儲(chǔ)存結(jié)果的數(shù)據(jù)集名,output-statistic-list則界定需要保存哪些統(tǒng)計(jì)量和名稱,可能的形式為:statistic(varia

18、ble-list)=name-liststatistic可能是proc means語(yǔ)句中的任何一種統(tǒng)計(jì)量(sum,n,mean),variable-list則界定VAR語(yǔ)句中哪些變量需要輸出,name-list則定義統(tǒng)計(jì)量的新名字。比如,proc means語(yǔ)句產(chǎn)生了一個(gè)數(shù)據(jù)集ZOOSUM,包括一個(gè)觀測(cè)值和變量lionweight(the mean of the lionsweights),BearWeight(the mean of the bearsweights)。Noprint是告訴SAS不需要產(chǎn)生任何打印結(jié)果,因?yàn)橐呀?jīng)將結(jié)果存入數(shù)據(jù)集中。例子 仍然是花朵銷售的數(shù)據(jù)要描述數(shù)據(jù),每個(gè)顧客

19、只有一個(gè)觀測(cè)值,包括SUM和MEAN,并且將結(jié)果儲(chǔ)存到數(shù)據(jù)集中以便日后分析。下面的程序讀取程序,按照CustomerID排序,使用means過(guò)程,結(jié)果存在totals數(shù)據(jù)集中。以原始名Petunia,SnapDragon,and Marigold給出sum,以新變量名MeanPetunia,MeanSnapDragon,and MeanMarigold給出mean結(jié)果如下:4.11 用proc freq為數(shù)據(jù)計(jì)數(shù)對(duì)一個(gè)變量計(jì)算頻數(shù)叫做one-way,兩個(gè)叫做two-way,多個(gè)叫做交叉表。使用proc freq最明顯的目的是現(xiàn)實(shí)分類數(shù)據(jù)的分布情況,基本形式為:PROC FREQ; TABLES

20、 variable-combinations;產(chǎn)生一維頻率表,只要列出變量名。下面的語(yǔ)句列出了變量yearseducation的每一個(gè)值的個(gè)數(shù)。TABLES YearsEducation;建立兩個(gè)變量的交叉表需要一個(gè)*號(hào),下面的語(yǔ)句顯示變量Sex by YearsEducation的頻數(shù)情況:TABLES Sex*YearsEducation;這個(gè)語(yǔ)句之后可以用/option的形式添加選項(xiàng),主要下面幾個(gè):LIST:用list形式打印交叉表(而不是網(wǎng)格)MISSING:頻率統(tǒng)計(jì)量中包含缺失值NOCOL:強(qiáng)制在交叉表中不打印列百分比NOROW:強(qiáng)制在交叉表中不打印行百分比OUT=data-set:

21、輸出數(shù)據(jù)集比如說(shuō),使用第二個(gè)選項(xiàng): TABLES Sex*YearsEducation/MISSING;例子 有一家咖啡店的銷售數(shù)據(jù),記錄了銷售的咖啡種類(cappuccino,espresso,kona,or iced coffee),以及每次購(gòu)買的顧客是打包還是原地就飲:下面的代碼就產(chǎn)生了一個(gè)one-way和two-way的頻率表:代碼告訴SAS打印兩個(gè)表,一個(gè)是one-way的頻率表,一個(gè)是交叉表。交叉表的每個(gè)小方格內(nèi),SAS打印了頻數(shù)、百分比、行百分比和列百分比。左邊和右邊是累積百分比。注意計(jì)算頻數(shù)時(shí)沒(méi)有考慮缺失值。數(shù)據(jù)表的錯(cuò)誤kon?4.12 用proc tabulate產(chǎn)生一個(gè)表格

22、報(bào)告比起print,means,freq,Proc tabulate過(guò)程產(chǎn)生的報(bào)告更耐看。Proc tabulate的基本形式為:PROC TABULATE;CLASS classification-variable-list;TABLE dimension,row-dimension,column-dimension;Class語(yǔ)句告訴SAS哪些變量將數(shù)據(jù)分成不同部分。Table語(yǔ)句可以定義一個(gè)表,可以用多個(gè)table語(yǔ)句定義多個(gè)表,維度 table語(yǔ)句可以在報(bào)告中指定三個(gè)維度:頁(yè)、行、列。如果只指定一個(gè)維度,則默認(rèn)是列維度;如果指定兩個(gè),則是行和列。缺失數(shù)據(jù) 默認(rèn)下不考慮缺失數(shù)據(jù),在pro

23、c語(yǔ)句后面增加missing選項(xiàng)可以改變這種默認(rèn):PROC TABULATE MISSING;例子 有關(guān)于船的一些數(shù)據(jù),Boats.dat,記錄了每艘船的姓名、港口、移動(dòng)方式(sailing或者power vesse)l,類型(schooner,catamaran,or yacht),使用它遠(yuǎn)行的價(jià)格你想得到一份報(bào)告,包含了每一個(gè)港口的、sailing或者power vessel的、每一種類型的、船的數(shù)量,下面的代碼用proc tabulate創(chuàng)建了一個(gè)三維報(bào)告:港口作為頁(yè)、移動(dòng)方式作為行、類型作為列:報(bào)告分兩頁(yè),及港口的每個(gè)值情況為一頁(yè):4.13 為proc tabulate輸出增加統(tǒng)計(jì)量C

24、lass語(yǔ)句列出分類變量,而VAR語(yǔ)句告訴SAS那些變量裝的是連續(xù)數(shù)據(jù)?;拘问綖椋篜ROC TABULATE;VAR analysis-variable-list;CLASS classification-variable-list;TABLE dimension,row-dimension,column-dimension;關(guān)鍵詞 下面是tabulate可以計(jì)算的值:ALL:增加行、列或頁(yè),顯示總數(shù)Max:最高值Min:最低值Mean:算術(shù)均值Median:中位數(shù)N:非缺失值個(gè)數(shù)Nmiss:缺失值數(shù)P90:90th分位數(shù)Pctn:某類的觀測(cè)值百分?jǐn)?shù)Pctsum:某類值總和的百分?jǐn)?shù)STDDE

25、V:標(biāo)準(zhǔn)差SUM:求和Concatenating,crossing,and grouping 維度、變量和關(guān)鍵詞可以Concatenating,crossing,and grouping,Concatenating變量或關(guān)鍵詞,只需用空格分開列出即可;cross變量或關(guān)鍵字只需要用*分開列出即可;group變量只需要用括號(hào)括住變量或關(guān)鍵詞。Concatenating: TABLE Locomotion Type ALL;Crossing: TABLE MEAN*Price;Crossing,grouping,and concatenating: TABLE PCTN*(Locomotion T

26、ype);例子 仍然是船的例子,下面的代碼類似4.12,但多了VAR語(yǔ)句,table只包括兩維,但使用了Concatenate,cross,and group:輸出結(jié)果如下:4.14 提升proc tabulate的輸出外觀三種方式可以提升輸出的外觀:Format=option 可以改變數(shù)據(jù)的格式,比如,在表中使得數(shù)字有逗號(hào),并不含小數(shù),則使用:PROC TABULATE FORMAT=COMMA10.0;Box=和misstext=options format只能用在proc語(yǔ)句中,而box=和misstext=只能用在table語(yǔ)句中。box=的作用是在tabulete報(bào)告的左上角的空格中

27、寫下一句簡(jiǎn)潔的語(yǔ)句(作用類似標(biāo)題)。Misstext則是位空數(shù)據(jù)格指定一個(gè)值,默認(rèn)是一個(gè)句號(hào),比如下句:TABLE Region,MEAN*Sales/BOX=Mean Sales by Region MISSTEXT=No Sales;這是告訴SAS在左上角打印“Mean Sales by Region”,并且在沒(méi)有數(shù)據(jù)的方格內(nèi)打印“No Sales”例子 仍然是船的數(shù):如下代碼比前面多了format、box、misstext語(yǔ)句。注意format要出現(xiàn)在proc語(yǔ)句中,而box和misstext語(yǔ)句則出現(xiàn)在table語(yǔ)句中。這是“被提升了的”外觀,由于format指定dollar9.2,因

28、此都用貨幣格式輸出。左上角的full day excursions是由于box語(yǔ)句,空方格內(nèi)的none是由于misstext語(yǔ)句。4.15 在proc tabulate輸出的頂部有兩種方法可以改變頂部信息Class 變量 變量值 要改變class語(yǔ)句列出的變量值的頂部,使用format創(chuàng)建一個(gè)用戶定義的格式,然后用format語(yǔ)句將格式賦給變量。變量名和關(guān)鍵字 改變變量名和關(guān)鍵字的頂部,用=text賦值即可,可以用等號(hào)加空值的方法去除頂部,即=,語(yǔ)句為:TABLE Region=,MEAN=*Sales=Mean Sales by Region;這是告訴SAS移去region和mean的頂部,

29、并且將sale的頂部換為“Mean Sales by Region”有時(shí)候當(dāng)行頂部被賦為空格時(shí),會(huì)留下一個(gè)空白空格,可以用row=float強(qiáng)制去除這種空白空格: TABLE MEAN=*Sales=Mean Sales by Region,Region=/ROW=FLOAT;例子 仍然是船的數(shù)據(jù):下面的代碼和以前一樣,多了對(duì)頂部的改變,format語(yǔ)句創(chuàng)建了一個(gè)用戶定義的格式$typ,并用format語(yǔ)句把這個(gè)格式賦給變量type,table語(yǔ)句中l(wèi)ocomotion、mean、type的頂部被賦為空格,price的頂部被賦值“Mean Price by Type of Boat.”輸出結(jié)果

30、為:這樣的結(jié)果看起來(lái)清晰且緊湊。4.16 為proc tabulate輸出的數(shù)據(jù)方格指定多種格式可以為不同變量指定不同格式,基本形式為:variable-name*FORMAT=formatw.d比如在table語(yǔ)句中插入這個(gè)復(fù)雜的語(yǔ)句:TABLE Region,MEAN*(Sales*FORMAT=COMMA8.0 Profit*FORMAT=DOLLAR10.2);這是給變量sales指定格式comma8.0,給變量profit指定格式dollar0.2例子 仍然是船的數(shù)據(jù),新增加了一個(gè)變量,以顯示船的長(zhǎng)度:假如你想在報(bào)告中同時(shí)show出平均價(jià)格和平均長(zhǎng)度,僅為價(jià)格指定貨幣格式。下面的代碼

31、這樣實(shí)現(xiàn),為變量price指定格式dollar6.2,為length指定格式6.0:輸出結(jié)果如下,注意價(jià)格和長(zhǎng)度的格式不一樣:4.17 用proc report產(chǎn)生一個(gè)簡(jiǎn)單的輸出Report包含print、means和tabulate、sort的所有功能,可以用一本書來(lái)介紹,基本形式為: PROC REPORT NOWINDOWS;COLUMN variable-list;Column語(yǔ)句類似于proc print的var語(yǔ)句,告訴SAS哪些變量該包括并以何種順序,如果遺漏語(yǔ)句column,SAS默認(rèn)在數(shù)據(jù)集中包括所有變量,如果遺漏選項(xiàng)nowINDOWS,SAS默認(rèn)啟用交互report窗口。為

32、使數(shù)據(jù)和頂部能很好的區(qū)分開來(lái),可以使用headline和headskip:PROC REPORT NOWINDOWS HEADLINE HEADSKIP;Headline在頂部下面拉了一條線,headskip在頂部下面留了一段空白。數(shù)值變量VS字符串變量 從proc report得到的報(bào)告類型,部分依據(jù)于使用的數(shù)值類型。只要報(bào)告中起碼有一個(gè)字符串變量,默認(rèn)的報(bào)告就是每個(gè)觀測(cè)值一行。但如果報(bào)告全是數(shù)值變量,默認(rèn)proc report將會(huì)加總這些變量,即使是日期變量也會(huì)被加總。例子 有一份關(guān)于美國(guó)國(guó)家公園(national parks)和國(guó)家紀(jì)念碑(monuments)的數(shù)據(jù),Parks.dat,

33、變量包括名字、類型(NP for national park or NM for national monument),地區(qū)(East or West),博物館的數(shù)量,野營(yíng)地的數(shù)量:下面的代碼形成了兩份報(bào)告,第一份沒(méi)有column語(yǔ)句,SAS使用所有變量,第二份使用column語(yǔ)句,選擇部分變量:第一份報(bào)告與proc print相似,第二份報(bào)告,由于只選擇museum變量和camping兩個(gè)數(shù)值型變量,默認(rèn)直接顯示加總情況:4.18 在proc report中使用define語(yǔ)句Define用來(lái)為單個(gè)變量指定一些選項(xiàng),基本形式為:DEFINE variable/optionscolumn-he

34、ader;Usage選項(xiàng) 這個(gè)選項(xiàng)告訴SAS如何使用這個(gè)變量,可能的usage選項(xiàng)包括:Across:為變量的每一個(gè)變量值都創(chuàng)建一個(gè)列Analysis:為變量創(chuàng)建統(tǒng)計(jì)量,數(shù)值變量默認(rèn)有這個(gè)usage選項(xiàng),且統(tǒng)計(jì)量默認(rèn)為sum。Display:為數(shù)據(jù)集中的每一個(gè)觀測(cè)值都創(chuàng)建一行,對(duì)于字符串變量,這個(gè)選項(xiàng)是默認(rèn)的。Group:為每個(gè)變量的變量值都創(chuàng)建一行。Order:為每個(gè)觀測(cè)值都創(chuàng)建一行,且行值的排列是是按照指定的變量來(lái)順序。改變列頂部 proc report中幾種方法可以改變列頂部,4.1中的label語(yǔ)句,或者用define語(yǔ)句指定列頂部,下面的代碼使得SAS的report按照age排序,并

35、且以“Age at Admission”作為列頂部:DEFINE Age / ORDER Age at/Admission;缺失數(shù)據(jù) 默認(rèn)在order,group,和across variables中不考慮缺失值,用missing選項(xiàng)可以改變這種默認(rèn):PROC REPORT NOWINDOWS MISSING;例子 仍然是關(guān)于國(guó)家公園和紀(jì)念碑的數(shù)據(jù),下面的代碼包含兩個(gè)define語(yǔ)句,第一個(gè)用order選項(xiàng)來(lái)定義region,第二個(gè)為變量camping定義列頂部。Camping是一個(gè)數(shù)值變量,默認(rèn)有analysis選項(xiàng)。Missing選項(xiàng)也出現(xiàn)在了proc語(yǔ)句中,因此缺失值也會(huì)被考慮在報(bào)告中:輸出結(jié)果為:Region有三個(gè)變量值,第一個(gè)是missing缺失值。4.19 用proc report創(chuàng)建簡(jiǎn)易報(bào)告Group創(chuàng)建簡(jiǎn)易行,across創(chuàng)建簡(jiǎn)易列。Group 變量 下面的代碼告訴SAS創(chuàng)建一個(gè)顯示每個(gè)部門工資總和、獎(jiǎng)金總和(數(shù)值變量將默認(rèn)被加總)的報(bào)告:Across變量 corss變量,也需要define語(yǔ)句,不同的是,SAS默認(rèn)不是

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(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)論