熱線電話:13121318867

登錄
首頁精彩閱讀如何建立SAS報表
如何建立SAS報表
2016-04-25
收藏
如何建立SAS報表


一.使用PRINT過程步

1.PRINT過程步的基本使用

前面我們已經提到過利用PRINT過程步檢查我們建立的SAS數據集的內容,實際上就是用PRINT過程步顯示SAS數據集的內容。PRINT過程步由一個PROC PRINT語句開始,其一般形式為:

    PROC PRINT options;


選項包括DATA=選項,它指定你使用的數據集,如果不使用該選項的話,系統使用最近用到的數據集。另外,在用PRINT過程步顯示SAS數據集的內容之前,或者說,在一個程序的開頭,往往需要用LIBNAME語句指定SAS數據庫。例如:

    libname clinic'c:\clinic';

    proc printdata=clinic.admit;

    run;

提交這段程序以后,SAS系統就會在OUTPUT窗口中顯示該數據集的內容,我們把它稱為報表(report)。例如:

 

ID

NAME

SEX

AGE

HEIGHT

WEIGHT

FEE

2458

Murray, W

M

27

72

168

85.20

2462

Almers, C

F

34

66

152

124.80

2501

Bonaventure, T

F

31

61

123

149.75

 

2.控制產生的報表

在缺省情況下,PRINT過程步產生的報表會顯示:

A.數據集中所有的觀測和變量

B.在最左邊一列顯示觀測號

C.變量根據它們在數據集中的順序排列

為了得到你想要的報表,你可以對產生報表的過程進行控制,你可以:

A.利用系統選項控制報表的樣式

B.選擇顯示變量和觀測

C.對數據進行排序

D.加題注和尾注

E.顯示描述性的變量標記

F.對數據規定格式

下面我們一一介紹如何進行控制。

3.設定系統選項

在你用PRINT過程步產生報表之前,你可以先設定一些系統選項控制報表的樣式,包括:

 

選項

功能

LINESIZE=

設定每行的長度

PAGESIZE=

設定每頁的行數

NUMBER|NONUMBER

設定是否顯示頁碼

PAGENO=

設定開始頁碼

DATE|NODATE

設定是否顯示日期和時間

 

每一個系統選項都有缺省設置,例如,在缺省情況下,會自動顯示頁碼。

你可以用以下任一方法改變這些系統選項:

1)用OPTIONS語句

一般形式為:    OPTIONS options;

例如:  options pagesize=20linesize=76;

        options numberpageno=1;

OPTIONS語句可以出現在SAS程序的任意地方,從語句被執行的地方開始,設定的系統選項起作用,一直到你改變它的設置。

例如:  options nonumber nodate;

        proc printdata=sales.qtr3;

        proc printdata=sales.qtr4;

        options date;

        run;

則在顯示SALES.QTR3的時候頁碼和日期時間均不顯示,而在顯示SALES.QTR4的時候頁碼不顯示但日期時間顯示。注意,SAS系統要遇到DATA、PROC或RUN等關鍵詞的時候才執行會執行前面一個程序步,因此,OPTIONS語句要遇到其后的這些關鍵詞時才會被執行,但它會在其所屬的程序步中優先執行。

2)用OPTIONS窗口

另一個改變系統選項的簡單方法是進入OPTIONS窗口:

    選擇:  Globals à Options àGlobal Options

找到想要設定的選項,作相應的改變即可。

4.NOOBS選項

你可以在PROC PRINT語句中使用NOOBS選項去掉報表中的觀測號列。例如:

    proc printdata=sales.qtr4 noobs;

    run;

事實上,PROC PRINT語句中可以使用的選項很多,詳細情況可利用HELP窗口查找:

    Help à SAS System àREPORT WRITING àPRINT

5.選擇變量

如果你的數據集中有很多變量,而你只希望顯示其中的一部分,你可以在PRINT過程步中用VAR語句指定要顯示的變量。其一般形式為:

    VAR variables;

例如:  var age height weight fee;

輸出報表中的變量按照在VAR語句中出現的順序排列。

注意,變量之間用空格分開。

6.選擇觀測

如果你只需要顯示數據集中的某一部分觀測,而不是所有的觀測,你可以在PRINT過程步中用WHERE語句設定要顯示的觀測應滿足的條件。

1)WHERE語句的一般形式為:

    WHEREwhere-expression;

條件表達式的寫法同第三章中所述相類似。例如:

    whereweight<175;

    where name='Almers,C';

注意,對字符型變量,條件表達式中的數據值用單引號括起,并且區分大小寫。

2)復合條件

你也可以在多個條件的基礎上選擇你要顯示的觀測,這時候你可以在條件表達式中用AND(&)和OR(|)算符,例如:

    where age<=55and weight >160;          whereage<=55 & weight >160;

    where fee=124.80 orfee=178.20;         where fee=124.80 |fee=178.20;

3)IN算符

如果對同一個變量用多個值進行條件檢驗的話,可在條件表達式中用IN算符,例如:

    where fee in(124.80,178.20);

4)多重復合條件

當你在條件表達式中用到一個以上AND(&)和OR(|)算符時,應該用括號來決定那些條件先復合,再與其它條件復合,例如:

    where (age<=55and weight >160) or height >70;

    where age<=55and (weight >160 or height >70);

顯然是兩個不同的條件。如果不加括號,則照前兩個先復合的方法進行。

7.對數字型變量求和

你可以利用SUM語句對數字型變量求和,在輸出的報表中,該變量所在列的最下方顯示這一列數值的和。SUM語句的一般形式為:

    SUM variables;

例如:  proc print data=vcrsales;

            varsalesrep region;

            sumunitcost unit sold;

        run;

在SUM語句中出現的變量名不需要在VAR語句中指定,也會在輸出報表中顯示。

8.對數據進行排序

如果你希望在報表中的觀測是按照指定的順序排列的話,就應當在利用PRINT過程步創建報表之前,用SORT過程步對數據進行排序。一個簡單的SORT過程步的一般形式為:

    PROC SORTDATA=SAS-data-set OUT=SAS-data-set;

        BY variables;

    RUN;

過程步以PROC SORT語句開始,其中,DATA=選項指明要讀的數據集,BY語句是SORT過程步所必需的,它指明要按照哪個(那些)變量的值來進行排序。

OUT=選項指定一個輸出數據集,在這個數據集中,所有的觀測按指定的順序排列。注意,如果不使用OUT=選項的話,在DATA=選項中指明的數據集就會被永久性地改變,而如果你只是希望它臨時改變的話,就必須用OUT=選項指定一個臨時的輸出數據集。

9.題注(Titles)和尾注(Footnotes)

在SAS報表中,可以出現題注和尾注,題注出現在每一頁的頂部,尾注出現在每一頁的底部,如果沒有定義,缺省的題注是‘The SAS System’,尾注不定義就不出現。

1)顯示題注(Titles)

你可以改變輸出報表中的題注,方法有:

A.用TITLES窗口

選擇Globals à OptionsàTitles

進入TITLES窗口,在相應位置輸入你希望作為題注的文字,

選擇Edit à End

退出即可。

SAS系統允許有10個題注。

B.用TITLE語句

在產生報表的過程步中或之前用TITLE語句設定題注,其一般形式為:

    TITLEn 'titletext';

例如: title1 'July Report';

        title3 'group1';

用TITLE語句同樣可以設定10個題注。

2)顯示尾注(Footnotes)

你還可以改變輸出報表中的尾注,方法與改變題注的方法相似:

A.用FOOTNOTES窗口

選擇Globals à OptionsàFootnotes

進入FOOTNOTES窗口,在相應位置輸入你希望作為尾注的文字,

選擇Edit à End

退出即可。

SAS系統允許有10個尾注。

B.用FOOTNOOT語句

在產生報表的過程步中或之前用FOOTNOTE語句設定尾注,其一般形式為:

    FOOTNOTEn 'footnotetext';

例如: footnote1 'PrepareedJuly 15';

        footnote3 'byfinancial department';

用FOOTNOTE語句同樣可以設定10個尾注。

3)改變題注和尾注的設定

題注和尾注的設定都是全局性的,設定以后,它們的作用一直延續到你重新設定或退出SAS系統。在設定了題注和尾注之后,你如果希望改變或取消這些設定的話,可用以下方法:

A.用TITLES 或FOOTNOTES窗口

進入TITLES 或FOOTNOTES窗口,改變或取消其中的設置。

B.用TITLE 或FOOTNOTE語句

用新的TITLE 或FOOTNOTE語句重新設定題注或尾注,新的設定會取代老的設定。

注意,新的TITLE 或FOOTNOTE語句被執行是,除了取代原先同樣號碼的題注或尾注之外,還會取消更大號碼的題注或尾注。

用下列不加號碼或不加文字的語句可取消所有的題注或尾注:

    title1;

    footnote;

10.     給變量設定描述性標記

如果某些變量名不足以表達該變量數據的性質,你希望在報表中以更準確的詞句來作為這些列的標記的話,可以在過程步中使用LABEL語句,其一般形式為:

    LABEL   variable1='label'

            Variable2='label';

標記可長達40個字符,并且,必須用引號括起。

你可以用一個LABEL語句,也可以用多個LABEL語句來設定描述性標記。

另外,為了顯示標記,在PROC PRINT語句中必須使用LABEL選項。例如:

    proc printdata=clinic.therapy label;

        var month wjr;

        labelwjr='Walk/Jog/Run';

    run;

11.     設定輸出數據的格式

你可以利用FORMAT語句設定變量的輸出格式,以使報表看上去更完美。FORMAT語句的一般形式為:

    FORMAT variableformat-name;

例如:  format net comma5.0 grosscomma8.2;

        format netcommiss dollar9.2;

在某一個過程步中的FORMAT語句設定的輸出數據的格式,僅在同一個過程步產生的報表中起作用。

SAS系統提供許多輸出格式,可用于在FORMAT語句中使用。你可以在SAS的HELP穿口中找到所有 的SAS輸出格式,方法為:

    Help à SAS System à SASLANGUAGE à SASFormats and Infortmats

下面是部分常用格式:

 

格式

顯示結果

COMMAw.d

Comma8.2

1,123.20

DOLLARw.d

Dollar6.2

$56.00

MMDDYYw.

Mmddyy6.

150599

w.d

8.2

12203.90

 

12.     自定義輸出格式

在SAS系統中,用戶還可以用FORMAT過程自己定義輸出格式,其一般形式為:

    PROC FORMAT;

        VALUEformat-name   range1='label'

                            range2='label';

例如:  proc format;

            value$destfmt 'LON'='London'

                            'PAR'='Paris'

                            'HON'='Hongkong';

        run;

然后在PRINT過程中的FORMAT語句中就可以自定義的輸出格式了,例如:

(接上例)  proc print data=summer;

                vardate dest;

                formatdata date7. Dest $destfmt;

            run;

 

二.使用TABULATE過程步

使用PRINT過程步你可以以列表的形式顯示數據集的內容,但有時候你可能更希望以表格的形式對數據集中的內容進行分析,這時候,就可以利用TABULATE過程步來幫助你進行這項工作。

1.用TABULATE過程步創建表格

事實上,TABULATE過程步并不是簡單地顯示數據集的內容,而是對數據集中的內容進行歸納統計以后,根據用戶的要求,制作各式表格供用戶分析使用。

TABULATE過程步能幫助你方便地設計你的報表,你可以自由決定表格的形式和結構,作出的表格可以是一維的、二維的或三維的。同時,TABULATE過程步能對數據集中的數據進行歸納統計,在表格中顯示一些描述性統計量,例如:

A.SUM(和)

B.MEAN(均值)

C.MINIMUM(最小值)

D.MAXIMUM(最大值)

E.STANDARDDEVIATION(標準偏差

F.VARIANCE(方差)

等等。

你也可以在TABULATE過程步中進行選擇觀測、設定描述性標記、設定題注和尾注、給數據規定輸出格式等操作。

2.設計表格

使用TABULATE過程步的關鍵是計劃,與PRINT過程步不同,TABULATE過程步不會產生缺省的報表,你必須告訴它如何創建表格,因此,在使用TABULATE過程步之前,最好先畫一個草表,以明確你自己到底想要得到一個什么樣的表格。具體說,你需要決定:

A.使用什么數據

B.用什么變量對數據分類

C.對什么變量進行分析

D.表格的形式

3.基本的TABULATE過程步

一個簡單的TABULATE過程步包含以下四條基本語句:

 

語句

功能

PROC TABULATE

啟動過程步,設定數據集

CLASS

設定分類變量

VAR

設定分析變量

TABLE

描述產生的表格

 

其中,PROC TABULATE語句作為TABULATE過程步的開頭,是必須要有的,其一般形式為:

    PROC TABULATEoptions;

例如:  proc tabulatedata=clinic.admit;

其中,DATA=選項決定使用什么數據集。

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢