
一.使用PRINT過程步
1.PRINT過程步的基本使用
前面我們已經(jīng)提到過利用PRINT過程步檢查我們建立的SAS數(shù)據(jù)集的內(nèi)容,實(shí)際上就是用PRINT過程步顯示SAS數(shù)據(jù)集的內(nèi)容。PRINT過程步由一個(gè)PROC PRINT語句開始,其一般形式為:
PROC PRINT options;
選項(xiàng)包括DATA=選項(xiàng),它指定你使用的數(shù)據(jù)集,如果不使用該選項(xiàng)的話,系統(tǒng)使用最近用到的數(shù)據(jù)集。另外,在用PRINT過程步顯示SAS數(shù)據(jù)集的內(nèi)容之前,或者說,在一個(gè)程序的開頭,往往需要用LIBNAME語句指定SAS數(shù)據(jù)庫。例如:
libname clinic'c:\clinic';
proc printdata=clinic.admit;
run;
提交這段程序以后,SAS系統(tǒng)就會(huì)在OUTPUT窗口中顯示該數(shù)據(jù)集的內(nèi)容,我們把它稱為報(bào)表(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.控制產(chǎn)生的報(bào)表
在缺省情況下,PRINT過程步產(chǎn)生的報(bào)表會(huì)顯示:
A.?dāng)?shù)據(jù)集中所有的觀測(cè)和變量
B.在最左邊一列顯示觀測(cè)號(hào)
C.變量根據(jù)它們?cè)跀?shù)據(jù)集中的順序排列
為了得到你想要的報(bào)表,你可以對(duì)產(chǎn)生報(bào)表的過程進(jìn)行控制,你可以:
A.利用系統(tǒng)選項(xiàng)控制報(bào)表的樣式
B.選擇顯示變量和觀測(cè)
C.對(duì)數(shù)據(jù)進(jìn)行排序
D.加題注和尾注
E.顯示描述性的變量標(biāo)記
F.對(duì)數(shù)據(jù)規(guī)定格式
下面我們一一介紹如何進(jìn)行控制。
3.設(shè)定系統(tǒng)選項(xiàng)
在你用PRINT過程步產(chǎn)生報(bào)表之前,你可以先設(shè)定一些系統(tǒng)選項(xiàng)控制報(bào)表的樣式,包括:
選項(xiàng) |
功能 |
LINESIZE= |
設(shè)定每行的長(zhǎng)度 |
PAGESIZE= |
設(shè)定每頁的行數(shù) |
NUMBER|NONUMBER |
設(shè)定是否顯示頁碼 |
PAGENO= |
設(shè)定開始頁碼 |
DATE|NODATE |
設(shè)定是否顯示日期和時(shí)間 |
每一個(gè)系統(tǒng)選項(xiàng)都有缺省設(shè)置,例如,在缺省情況下,會(huì)自動(dòng)顯示頁碼。
你可以用以下任一方法改變這些系統(tǒng)選項(xiàng):
1)用OPTIONS語句
一般形式為: OPTIONS options;
例如: options pagesize=20linesize=76;
options numberpageno=1;
OPTIONS語句可以出現(xiàn)在SAS程序的任意地方,從語句被執(zhí)行的地方開始,設(shè)定的系統(tǒng)選項(xiàng)起作用,一直到你改變它的設(shè)置。
例如: options nonumber nodate;
proc printdata=sales.qtr3;
proc printdata=sales.qtr4;
options date;
run;
則在顯示SALES.QTR3的時(shí)候頁碼和日期時(shí)間均不顯示,而在顯示SALES.QTR4的時(shí)候頁碼不顯示但日期時(shí)間顯示。注意,SAS系統(tǒng)要遇到DATA、PROC或RUN等關(guān)鍵詞的時(shí)候才執(zhí)行會(huì)執(zhí)行前面一個(gè)程序步,因此,OPTIONS語句要遇到其后的這些關(guān)鍵詞時(shí)才會(huì)被執(zhí)行,但它會(huì)在其所屬的程序步中優(yōu)先執(zhí)行。
2)用OPTIONS窗口
另一個(gè)改變系統(tǒng)選項(xiàng)的簡(jiǎn)單方法是進(jìn)入OPTIONS窗口:
選擇: Globals à Options àGlobal Options
找到想要設(shè)定的選項(xiàng),作相應(yīng)的改變即可。
4.NOOBS選項(xiàng)
你可以在PROC PRINT語句中使用NOOBS選項(xiàng)去掉報(bào)表中的觀測(cè)號(hào)列。例如:
proc printdata=sales.qtr4 noobs;
run;
事實(shí)上,PROC PRINT語句中可以使用的選項(xiàng)很多,詳細(xì)情況可利用HELP窗口查找:
Help à SAS System àREPORT WRITING àPRINT
5.選擇變量
如果你的數(shù)據(jù)集中有很多變量,而你只希望顯示其中的一部分,你可以在PRINT過程步中用VAR語句指定要顯示的變量。其一般形式為:
VAR variables;
例如: var age height weight fee;
輸出報(bào)表中的變量按照在VAR語句中出現(xiàn)的順序排列。
注意,變量之間用空格分開。
6.選擇觀測(cè)
如果你只需要顯示數(shù)據(jù)集中的某一部分觀測(cè),而不是所有的觀測(cè),你可以在PRINT過程步中用WHERE語句設(shè)定要顯示的觀測(cè)應(yīng)滿足的條件。
1)WHERE語句的一般形式為:
WHEREwhere-expression;
條件表達(dá)式的寫法同第三章中所述相類似。例如:
whereweight<175;
where name='Almers,C';
注意,對(duì)字符型變量,條件表達(dá)式中的數(shù)據(jù)值用單引號(hào)括起,并且區(qū)分大小寫。
2)復(fù)合條件
你也可以在多個(gè)條件的基礎(chǔ)上選擇你要顯示的觀測(cè),這時(shí)候你可以在條件表達(dá)式中用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算符
如果對(duì)同一個(gè)變量用多個(gè)值進(jìn)行條件檢驗(yàn)的話,可在條件表達(dá)式中用IN算符,例如:
where fee in(124.80,178.20);
4)多重復(fù)合條件
當(dāng)你在條件表達(dá)式中用到一個(gè)以上AND(&)和OR(|)算符時(shí),應(yīng)該用括號(hào)來決定那些條件先復(fù)合,再與其它條件復(fù)合,例如:
where (age<=55and weight >160) or height >70;
where age<=55and (weight >160 or height >70);
顯然是兩個(gè)不同的條件。如果不加括號(hào),則照前兩個(gè)先復(fù)合的方法進(jìn)行。
7.對(duì)數(shù)字型變量求和
你可以利用SUM語句對(duì)數(shù)字型變量求和,在輸出的報(bào)表中,該變量所在列的最下方顯示這一列數(shù)值的和。SUM語句的一般形式為:
SUM variables;
例如: proc print data=vcrsales;
varsalesrep region;
sumunitcost unit sold;
run;
在SUM語句中出現(xiàn)的變量名不需要在VAR語句中指定,也會(huì)在輸出報(bào)表中顯示。
8.對(duì)數(shù)據(jù)進(jìn)行排序
如果你希望在報(bào)表中的觀測(cè)是按照指定的順序排列的話,就應(yīng)當(dāng)在利用PRINT過程步創(chuàng)建報(bào)表之前,用SORT過程步對(duì)數(shù)據(jù)進(jìn)行排序。一個(gè)簡(jiǎn)單的SORT過程步的一般形式為:
PROC SORTDATA=SAS-data-set OUT=SAS-data-set;
BY variables;
RUN;
過程步以PROC SORT語句開始,其中,DATA=選項(xiàng)指明要讀的數(shù)據(jù)集,BY語句是SORT過程步所必需的,它指明要按照哪個(gè)(那些)變量的值來進(jìn)行排序。
OUT=選項(xiàng)指定一個(gè)輸出數(shù)據(jù)集,在這個(gè)數(shù)據(jù)集中,所有的觀測(cè)按指定的順序排列。注意,如果不使用OUT=選項(xiàng)的話,在DATA=選項(xiàng)中指明的數(shù)據(jù)集就會(huì)被永久性地改變,而如果你只是希望它臨時(shí)改變的話,就必須用OUT=選項(xiàng)指定一個(gè)臨時(shí)的輸出數(shù)據(jù)集。
9.題注(Titles)和尾注(Footnotes)
在SAS報(bào)表中,可以出現(xiàn)題注和尾注,題注出現(xiàn)在每一頁的頂部,尾注出現(xiàn)在每一頁的底部,如果沒有定義,缺省的題注是‘The SAS System’,尾注不定義就不出現(xiàn)。
1)顯示題注(Titles)
你可以改變輸出報(bào)表中的題注,方法有:
A.用TITLES窗口
選擇Globals à OptionsàTitles
進(jìn)入TITLES窗口,在相應(yīng)位置輸入你希望作為題注的文字,
選擇Edit à End
退出即可。
SAS系統(tǒng)允許有10個(gè)題注。
B.用TITLE語句
在產(chǎn)生報(bào)表的過程步中或之前用TITLE語句設(shè)定題注,其一般形式為:
TITLEn 'titletext';
例如: title1 'July Report';
title3 'group1';
用TITLE語句同樣可以設(shè)定10個(gè)題注。
2)顯示尾注(Footnotes)
你還可以改變輸出報(bào)表中的尾注,方法與改變題注的方法相似:
A.用FOOTNOTES窗口
選擇Globals à OptionsàFootnotes
進(jìn)入FOOTNOTES窗口,在相應(yīng)位置輸入你希望作為尾注的文字,
選擇Edit à End
退出即可。
SAS系統(tǒng)允許有10個(gè)尾注。
B.用FOOTNOOT語句
在產(chǎn)生報(bào)表的過程步中或之前用FOOTNOTE語句設(shè)定尾注,其一般形式為:
FOOTNOTEn 'footnotetext';
例如: footnote1 'PrepareedJuly 15';
footnote3 'byfinancial department';
用FOOTNOTE語句同樣可以設(shè)定10個(gè)尾注。
3)改變題注和尾注的設(shè)定
題注和尾注的設(shè)定都是全局性的,設(shè)定以后,它們的作用一直延續(xù)到你重新設(shè)定或退出SAS系統(tǒng)。在設(shè)定了題注和尾注之后,你如果希望改變或取消這些設(shè)定的話,可用以下方法:
A.用TITLES 或FOOTNOTES窗口
進(jìn)入TITLES 或FOOTNOTES窗口,改變或取消其中的設(shè)置。
B.用TITLE 或FOOTNOTE語句
用新的TITLE 或FOOTNOTE語句重新設(shè)定題注或尾注,新的設(shè)定會(huì)取代老的設(shè)定。
注意,新的TITLE 或FOOTNOTE語句被執(zhí)行是,除了取代原先同樣號(hào)碼的題注或尾注之外,還會(huì)取消更大號(hào)碼的題注或尾注。
用下列不加號(hào)碼或不加文字的語句可取消所有的題注或尾注:
title1;
footnote;
10. 給變量設(shè)定描述性標(biāo)記
如果某些變量名不足以表達(dá)該變量數(shù)據(jù)的性質(zhì),你希望在報(bào)表中以更準(zhǔn)確的詞句來作為這些列的標(biāo)記的話,可以在過程步中使用LABEL語句,其一般形式為:
LABEL variable1='label'
Variable2='label';
標(biāo)記可長(zhǎng)達(dá)40個(gè)字符,并且,必須用引號(hào)括起。
你可以用一個(gè)LABEL語句,也可以用多個(gè)LABEL語句來設(shè)定描述性標(biāo)記。
另外,為了顯示標(biāo)記,在PROC PRINT語句中必須使用LABEL選項(xiàng)。例如:
proc printdata=clinic.therapy label;
var month wjr;
labelwjr='Walk/Jog/Run';
run;
11. 設(shè)定輸出數(shù)據(jù)的格式
你可以利用FORMAT語句設(shè)定變量的輸出格式,以使報(bào)表看上去更完美。FORMAT語句的一般形式為:
FORMAT variableformat-name;
例如: format net comma5.0 grosscomma8.2;
format netcommiss dollar9.2;
在某一個(gè)過程步中的FORMAT語句設(shè)定的輸出數(shù)據(jù)的格式,僅在同一個(gè)過程步產(chǎn)生的報(bào)表中起作用。
SAS系統(tǒng)提供許多輸出格式,可用于在FORMAT語句中使用。你可以在SAS的HELP穿口中找到所有 的SAS輸出格式,方法為:
Help à SAS System à SASLANGUAGE à SASFormats and Infortmats
下面是部分常用格式:
格式 |
例 |
顯示結(jié)果 |
COMMAw.d |
Comma8.2 |
1,123.20 |
DOLLARw.d |
Dollar6.2 |
$56.00 |
MMDDYYw. |
Mmddyy6. |
150599 |
w.d |
8.2 |
12203.90 |
12. 自定義輸出格式
在SAS系統(tǒng)中,用戶還可以用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過程步你可以以列表的形式顯示數(shù)據(jù)集的內(nèi)容,但有時(shí)候你可能更希望以表格的形式對(duì)數(shù)據(jù)集中的內(nèi)容進(jìn)行分析,這時(shí)候,就可以利用TABULATE過程步來幫助你進(jìn)行這項(xiàng)工作。
1.用TABULATE過程步創(chuàng)建表格
事實(shí)上,TABULATE過程步并不是簡(jiǎn)單地顯示數(shù)據(jù)集的內(nèi)容,而是對(duì)數(shù)據(jù)集中的內(nèi)容進(jìn)行歸納統(tǒng)計(jì)以后,根據(jù)用戶的要求,制作各式表格供用戶分析使用。
TABULATE過程步能幫助你方便地設(shè)計(jì)你的報(bào)表,你可以自由決定表格的形式和結(jié)構(gòu),作出的表格可以是一維的、二維的或三維的。同時(shí),TABULATE過程步能對(duì)數(shù)據(jù)集中的數(shù)據(jù)進(jìn)行歸納統(tǒng)計(jì),在表格中顯示一些描述性統(tǒng)計(jì)量,例如:
A.SUM(和)
B.MEAN(均值)
C.MINIMUM(最小值)
D.MAXIMUM(最大值)
E.STANDARDDEVIATION(標(biāo)準(zhǔn)偏差)
F.VARIANCE(方差)
等等。
你也可以在TABULATE過程步中進(jìn)行選擇觀測(cè)、設(shè)定描述性標(biāo)記、設(shè)定題注和尾注、給數(shù)據(jù)規(guī)定輸出格式等操作。
2.設(shè)計(jì)表格
使用TABULATE過程步的關(guān)鍵是計(jì)劃,與PRINT過程步不同,TABULATE過程步不會(huì)產(chǎn)生缺省的報(bào)表,你必須告訴它如何創(chuàng)建表格,因此,在使用TABULATE過程步之前,最好先畫一個(gè)草表,以明確你自己到底想要得到一個(gè)什么樣的表格。具體說,你需要決定:
A.使用什么數(shù)據(jù)
B.用什么變量對(duì)數(shù)據(jù)分類
C.對(duì)什么變量進(jìn)行分析
D.表格的形式
3.基本的TABULATE過程步
一個(gè)簡(jiǎn)單的TABULATE過程步包含以下四條基本語句:
語句 |
功能 |
PROC TABULATE |
啟動(dòng)過程步,設(shè)定數(shù)據(jù)集 |
CLASS |
設(shè)定分類變量 |
VAR |
設(shè)定分析變量 |
TABLE |
描述產(chǎn)生的表格 |
其中,PROC TABULATE語句作為TABULATE過程步的開頭,是必須要有的,其一般形式為:
PROC TABULATEoptions;
例如: proc tabulatedata=clinic.admit;
其中,DATA=選項(xiàng)決定使用什么數(shù)據(jù)集。
數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼
若不方便掃碼,搜微信號(hào):CDAshujufenxi
LSTM 模型輸入長(zhǎng)度選擇技巧:提升序列建模效能的關(guān)鍵? 在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)家族中,長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)憑借其解決長(zhǎng)序列 ...
2025-07-11CDA 數(shù)據(jù)分析師報(bào)考條件詳解與準(zhǔn)備指南? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代浪潮下,CDA 數(shù)據(jù)分析師認(rèn)證愈發(fā)受到矚目,成為眾多有志投身數(shù) ...
2025-07-11數(shù)據(jù)透視表中兩列相乘合計(jì)的實(shí)用指南? 在數(shù)據(jù)分析的日常工作中,數(shù)據(jù)透視表憑借其強(qiáng)大的數(shù)據(jù)匯總和分析功能,成為了 Excel 用戶 ...
2025-07-11尊敬的考生: 您好! 我們誠(chéng)摯通知您,CDA Level I和 Level II考試大綱將于 2025年7月25日 實(shí)施重大更新。 此次更新旨在確保認(rèn) ...
2025-07-10BI 大數(shù)據(jù)分析師:連接數(shù)據(jù)與業(yè)務(wù)的價(jià)值轉(zhuǎn)化者? ? 在大數(shù)據(jù)與商業(yè)智能(Business Intelligence,簡(jiǎn)稱 BI)深度融合的時(shí)代,BI ...
2025-07-10SQL 在預(yù)測(cè)分析中的應(yīng)用:從數(shù)據(jù)查詢到趨勢(shì)預(yù)判? ? 在數(shù)據(jù)驅(qū)動(dòng)決策的時(shí)代,預(yù)測(cè)分析作為挖掘數(shù)據(jù)潛在價(jià)值的核心手段,正被廣泛 ...
2025-07-10數(shù)據(jù)查詢結(jié)束后:分析師的收尾工作與價(jià)值深化? ? 在數(shù)據(jù)分析的全流程中,“query end”(查詢結(jié)束)并非工作的終點(diǎn),而是將數(shù) ...
2025-07-10CDA 數(shù)據(jù)分析師考試:從報(bào)考到取證的全攻略? 在數(shù)字經(jīng)濟(jì)蓬勃發(fā)展的今天,數(shù)據(jù)分析師已成為各行業(yè)爭(zhēng)搶的核心人才,而 CDA(Certi ...
2025-07-09【CDA干貨】單樣本趨勢(shì)性檢驗(yàn):捕捉數(shù)據(jù)背后的時(shí)間軌跡? 在數(shù)據(jù)分析的版圖中,單樣本趨勢(shì)性檢驗(yàn)如同一位耐心的偵探,專注于從單 ...
2025-07-09year_month數(shù)據(jù)類型:時(shí)間維度的精準(zhǔn)切片? ? 在數(shù)據(jù)的世界里,時(shí)間是最不可或缺的維度之一,而year_month數(shù)據(jù)類型就像一把精準(zhǔn) ...
2025-07-09CDA 備考干貨:Python 在數(shù)據(jù)分析中的核心應(yīng)用與實(shí)戰(zhàn)技巧? ? 在 CDA 數(shù)據(jù)分析師認(rèn)證考試中,Python 作為數(shù)據(jù)處理與分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 檢驗(yàn):數(shù)據(jù)趨勢(shì)與突變分析的有力工具? ? ? 在數(shù)據(jù)分析的廣袤領(lǐng)域中,準(zhǔn)確捕捉數(shù)據(jù)的趨勢(shì)變化以及識(shí)別 ...
2025-07-08備戰(zhàn) CDA 數(shù)據(jù)分析師考試:需要多久?如何規(guī)劃? CDA(Certified Data Analyst)數(shù)據(jù)分析師認(rèn)證作為國(guó)內(nèi)權(quán)威的數(shù)據(jù)分析能力認(rèn)證 ...
2025-07-08LSTM 輸出不確定的成因、影響與應(yīng)對(duì)策略? 長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)作為循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的一種變體,憑借獨(dú)特的門控機(jī)制,在 ...
2025-07-07統(tǒng)計(jì)學(xué)方法在市場(chǎng)調(diào)研數(shù)據(jù)中的深度應(yīng)用? 市場(chǎng)調(diào)研是企業(yè)洞察市場(chǎng)動(dòng)態(tài)、了解消費(fèi)者需求的重要途徑,而統(tǒng)計(jì)學(xué)方法則是市場(chǎng)調(diào)研數(shù) ...
2025-07-07CDA數(shù)據(jù)分析師證書考試全攻略? 在數(shù)字化浪潮席卷全球的當(dāng)下,數(shù)據(jù)已成為企業(yè)決策、行業(yè)發(fā)展的核心驅(qū)動(dòng)力,數(shù)據(jù)分析師也因此成為 ...
2025-07-07剖析 CDA 數(shù)據(jù)分析師考試題型:解鎖高效備考與答題策略? CDA(Certified Data Analyst)數(shù)據(jù)分析師考試作為衡量數(shù)據(jù)專業(yè)能力的 ...
2025-07-04SQL Server 字符串截取轉(zhuǎn)日期:解鎖數(shù)據(jù)處理的關(guān)鍵技能? 在數(shù)據(jù)處理與分析工作中,數(shù)據(jù)格式的規(guī)范性是保證后續(xù)分析準(zhǔn)確性的基礎(chǔ) ...
2025-07-04CDA 數(shù)據(jù)分析師視角:從數(shù)據(jù)迷霧中探尋商業(yè)真相? 在數(shù)字化浪潮席卷全球的今天,數(shù)據(jù)已成為企業(yè)決策的核心驅(qū)動(dòng)力,CDA(Certifie ...
2025-07-04CDA 數(shù)據(jù)分析師:開啟數(shù)據(jù)職業(yè)發(fā)展新征程? ? 在數(shù)據(jù)成為核心生產(chǎn)要素的今天,數(shù)據(jù)分析師的職業(yè)價(jià)值愈發(fā)凸顯。CDA(Certified D ...
2025-07-03