PROC REPORT包含了PRINT、MEANS、TABULATE、SORT過程和DATA步的功能:
一、基本語法:
1 DATA natparks; 2 INFILE 'C:\MyRawdata\parks.dat'; 3 INPUT Name $ 1-21 Type $ Region $ Museums Camping; 4 RUN; 5 6 /*-----Group and Across Variables(Group:縱向;Across:橫向)---*/ 7 *Region as Group and Type as Across Variable with Sums; 8 PROC REPORT DATA=natparks NOWINDOWS HEADLINE; 9 COLUMN Region Type N, ( Museums Camping),MEAN; 10 /*在報告中加入統計量:只需在COLUMN語句的變量后加上統計量,並用逗號隔開。特別的是N不需要,若在COLUMN語句中插入N,則會計算報告中那行的觀測數*/ 11 Define Region/GROUP; 12 Define Type/Across; 13 TITLE '...'; 14 RUN;
說明:
1. PROC REPORT:
NOWINDOWS: 命令SAS不要打開interatctive Report winow;
HEADLINE:若無HEADLINE選項,SAS會直接在列名稱下面列出具體的數據,而HEADLINE選項命令SAS在列名下面划一條線再輸入數據;
HEADSKIP:作用同HEADLINE,命令SAS在列名下面划一條空白再輸入數據
2. COLUNM語句:與PROC PRINT語句中的VAR類似,告訴SAS哪些變量需要以什么順序輸出。若省去,則全部輸出。
3.DEFINE語句:為變量指定特定的options.
1 DEFINE variable/ options 'column-header'; 2 例如: 3 DEFINE Age/ ORDER 'Age at/ Admission' WIDTH=9;/*其中,/為換行,Admission的寬度為9*/
其中,Options有:
1 ACROSS : 為變量的每一個unique值創建一列; 2 ANALYSIS: 為變量計算統計量(默認為數值性變量,統計量默認為求和); 3 COMPUTED:為calculate in a compute block的值創建一個新的變量; 4 DISPLAY: 為數據集中每個新觀測創建一行,默認是字符型; 5 GROUP:為變量的每個unique值創建一行; 6 ORDER: 為變量的每一個觀測值創建一行.
備注:
1.若數據中只有數值型變量,則默認情況下,PROC REPORT會自動的只輸出這些變量的和。若數據中含有字符型變量,則PROC REPORT對每個觀測輸出一行詳細的報告;
二、在PROC REPORT OUTPUT 中加入summary breaks
1 BREAK location variable/options; 2 /*對variable的每個unique值的location位置添加一個break,BREAK語句中的變量必須實現在DEFINE語句中定義過*/ 3 RBREAK location/options; 4 /*對report 的location位置添加一個break,因此不需要指定variable*/ 5 6 【Location的值】:BEFORE或者AFTER; 7 【OPTIONS的值】: 8 1. OL/UL:在break的上面/下面畫一條線; 9 2. PAGE:開始新的一頁; 10 3. SKIP:插入一個blankline 11 4. SUMMARIZE:插入數值型變量的和。
三、在PROC REPORT OUTPUT 中加入computed variable(自定義計算變量)
1 DATA natparks; 2 INFILE 'C:\MyRawdata\parks.dat'; 3 INPUT Name $ 1-21 Type $ Region $ Museums Camping; RUN; 4 5 *COMPUTE New variables that are numeric and character; 6 PROC REPORT DATA=natparks NOWINDOWS HEADLINE; 7 COLUMN Name Region Museums Camping Facilities Note; 8 DEFINE Museums/ANALYSIS SUM NOPRINT; 9 DEFINE Camping/ANALYSIS SUM NOPRINT; 10 DEFINE Camping/COMPUTED 'Camping/ and / Museum'; 11 DEFINE Note/COMPUTED; 12 COMPUTE Facilities;/*Computing數值型變量*/ 13 Facilities=Museums.SUM+Camping.SUM;/*將統計量通過后綴形式附加在變量名后面即可*/ 14 ENDCOMP; 15 COMPUTE NOTE/CHAR LENGTH=10;/*Computing字符型變量時,在COMPUTE后面加上CHAR選項,LENGTH=選項默認是8*/ 16 IF Camping.SUM=0 THEN Note='No Camping'; 17 ENDCOMP; 18 TITLE 'Report with two computed variables'; 19 RUN;