【正文】
FORMCHAR(索引表 )=?字符串 ?——規(guī)定用來構(gòu)造報(bào)表輪廓和分隔線的字符。缺省值是FORMCHAR=?||+|?。 ? MISSING——要求把丟失值作為分類變量的有效水平。 4. TABLE 語(yǔ)句的使用和輸出表格結(jié)構(gòu) 如何正確地理解和使用 TABLE語(yǔ)句是掌握 PROC TABULATE過程的關(guān)鍵所在。元素指分類變量、分析變量和統(tǒng)計(jì)量,當(dāng)表達(dá)式包含多個(gè)元素時(shí),需要用操作符把它們連接起來。下面列 出一些主要的操作符及其作用: TABLE 表達(dá)式中的操作符 作用 逗號(hào) , 轉(zhuǎn)另一維 空格 表格并排連接 星號(hào) * 交叉組合分組 圓 括號(hào) ( ) 分組或規(guī)定次序 為了便于理解 TABLE 表達(dá)式中操作符的作用,我們舉一個(gè)假設(shè)的例子來說明。而 X變量是一個(gè)數(shù)值型變量,用 VAR 定義為分析變量,我們可以理解為它是一個(gè)產(chǎn)品的銷售數(shù)量或收入金額或價(jià)格等。 例 1: TABLE 表達(dá)式中只有一個(gè)分類變量 A,既沒有規(guī)定分析變量,也沒有指明統(tǒng)計(jì)量,則缺省的統(tǒng)計(jì)量為頻數(shù) N,即分類變量值的交叉頻數(shù)。 Class A 。 Table A 。 A A1 A2 N N 6 6 例 2:使用逗號(hào)操作符隔開 TABLE語(yǔ)句的兩個(gè)表達(dá)式將產(chǎn)生一個(gè)兩維表格,第一個(gè)表達(dá)式定義行,第二個(gè)表達(dá)式定義列。 Class A B。 Table A , B 。 B B1 B2 N N A 3 3 A1 A2 3 3 40dca2807e07d52dcf97c3bcf0947ed9 SAS 系統(tǒng)和數(shù)據(jù)分析 電子商務(wù)系列 上海財(cái)經(jīng)大學(xué)經(jīng)濟(jì)信息管理系 IS/SHUFE Created by Page 9 of 28 例 3:使用兩個(gè)逗號(hào)操作符隔開 TABLE 語(yǔ)句的三個(gè)表達(dá)式將產(chǎn)生一個(gè)三維表格,第一個(gè)表達(dá)式定義頁(yè),第二個(gè)表達(dá)式定義行,第三個(gè)表達(dá)式定義列。 Class A B C。 Table A , B , C 。 第一頁(yè) A A1 C C1 C2 C3 N N N B 1 1 1 B1 B2 1 1 1 第二頁(yè) A A2 C C1 C2 C3 N N N B 1 1 1 B1 B2 1 1 1 例 4:使用空格操作符隔開 TABLE語(yǔ)句的兩個(gè)表達(dá)式將產(chǎn)生一個(gè)連排表格。 Class A B 。 Table A B 。 A B A1 A2 B1 B2 N N N N 6 6 6 6 40dca2807e07d52dcf97c3bcf0947ed9 SAS 系統(tǒng)和數(shù)據(jù)分析 電子商務(wù)系列 上海財(cái)經(jīng)大學(xué)經(jīng)濟(jì)信息管理系 IS/SHUFE Created by Page 10 of 28 例 5:使用星號(hào)操作符隔開 TABLE語(yǔ)句的兩個(gè)表達(dá)式將產(chǎn)生一個(gè)交叉等級(jí)表格。 Class A B 。 Table A *B 。 A A1 A2 B B B1 B2 B1 B2 N N N N 3 3 3 3 例 6:使用含有 圓 括號(hào)、空格和星號(hào)操作符的復(fù)合表達(dá)式。程序和輸出匯總報(bào)表形式如下所示: Proc tabulate Data=ABCX 。 Var X 。 Run 。在 TABLE語(yǔ)句中如果沒有規(guī)定分析變量,則 N 或 PCTN(頻數(shù) N 的百分?jǐn)?shù))40dca2807e07d52dcf97c3bcf0947ed9 SAS 系統(tǒng)和數(shù)據(jù)分析 電子商務(wù)系列 上海財(cái)經(jīng)大學(xué)經(jīng)濟(jì)信息管理系 IS/SHUFE Created by Page 11 of 28 可作為統(tǒng)計(jì)量使用,如 TABLE A*N 或 TABLE A*PCTN。如果 TABLE 語(yǔ)句中既沒有出現(xiàn)分析變量如 X,又沒有出現(xiàn)統(tǒng)計(jì)量如 MEAN,例如上面的例 1~ 6 中的 TABLE 語(yǔ)句都沒有規(guī)定分析變量和統(tǒng)計(jì)量,如 TABLE A 語(yǔ)句只規(guī)定了分類變量 A,則每個(gè)表單元將給出分類變量的交叉頻數(shù)。 統(tǒng)計(jì)量 作用 N 確定的子組中含有有效數(shù)據(jù)的觀測(cè)數(shù) NMISS 確定的子組中含有缺失值的觀測(cè)數(shù) MEAN 算術(shù) 平均 STD 標(biāo)準(zhǔn)誤差 MIN 最小值 MAX 最大值 RANGE 極差(取值范圍) SUM 總和 USS 未修正的平方和 CSS 關(guān)于均值修正的平方和(也稱偏差平方和) STDERR 均值的標(biāo)準(zhǔn)誤差 CV 變異系數(shù) T 檢驗(yàn)總體均值為 0 假設(shè)時(shí), t 統(tǒng)計(jì)量的值 PRT 顯著性概率(大于 t 統(tǒng)計(jì)量絕對(duì)值的概率) VAR 方差 SUMWGT 權(quán)數(shù)變量的和 PCTN 某一類中某一小類觀測(cè)所占的百分比 PCTSUM 某一類觀測(cè)在全部觀測(cè)中所占的百分比 多個(gè)分析變量和多個(gè)統(tǒng)計(jì)量能夠出現(xiàn)在 同一維中,也可以出現(xiàn)在不同的維中。不能用一個(gè)分析變量同另一個(gè)分析變量交叉,統(tǒng)計(jì)量之間也不能交叉。分母為 A的語(yǔ)句比分母為 A*B的語(yǔ)句求出的百分?jǐn)?shù)要大。全類變量 ALL 可以直接用在 TABLE 語(yǔ)句中,它僅有一個(gè)值,表示所有的子集和及總和,這是一個(gè)非常有用的類,常放在表格的最后一行和最后一列計(jì)算總和的統(tǒng)計(jì)量。有以下幾種定義報(bào)表輸出格式的方法: ⑴ 當(dāng)一個(gè)分類變量、分析變量或統(tǒng)計(jì)量用作操作元素時(shí),可以跟隨著等號(hào)和標(biāo)簽。 ⑵ 操作元素還可以進(jìn)行格式說明,通過 *號(hào)連接 FORMAT 或 F=輸出格式名。實(shí)際上起作用的是最后一個(gè) f=。 KEYLABLE 語(yǔ)句用于對(duì)出現(xiàn)在頁(yè)、行或列上的統(tǒng)計(jì)量名字和 ALL 分類變量名字重新標(biāo)記。例如: KEYLABEL MEAN=?AVERAGE? ALL=?TOTAL? LABEL A=?SEX? X=?AMOUNT? 要注意 KEYLABLE 和 LABEL 語(yǔ)句中定義的標(biāo)簽,比在 TABLE 語(yǔ)句中變量后跟隨著等號(hào)和標(biāo)簽的定義方法優(yōu)先級(jí)低。 PROC FORMAT 過程用來對(duì)字符變量或數(shù)值變量定義用戶自己的輸入輸出格式。兩者的配合使用可以使分類變量按用戶自定義格式輸出。當(dāng)分類變量 A 定義為輸出格式 $, 在輸出的匯總報(bào)表中,分類變量 A 原先在行或列標(biāo)題上輸出的是兩個(gè)分類值 A1 和 A2,現(xiàn)在改為輸出 Female 和 Male。如果規(guī)定任選項(xiàng),第一項(xiàng)前必須加斜桿 /。 ? PRINTMISS——要求輸出所有可能的行和列,即使某個(gè)特殊的行和列交叉單元中40dca2807e07d52dcf97c3bcf0947ed9 SAS 系統(tǒng)和數(shù)據(jù)分析 電子商務(wù)系列 上海財(cái)經(jīng)大學(xué)經(jīng)濟(jì)信息管理系 IS/SHUFE Created by Page 13 of 28 數(shù)據(jù)不存在。 ? RTS=數(shù)字 ——提供一個(gè)整數(shù),用來規(guī)定行標(biāo)題輸出時(shí)的左和右邊界值。對(duì)每一個(gè)報(bào)表單元規(guī)定缺省的輸出格式,如果沒有規(guī)定此選項(xiàng),缺省值是 。但是如果遇到在 TABLE 語(yǔ)句中規(guī)定有任何輸出格式,它將被取代。按性別 SEX 和全類 ALL 進(jìn)行 分類,求平均 年齡 AGE、最大的身高 HEIGH、最小的重量 WEIGHT、平均收入 INCOME 和男女人數(shù)的百分比 PCTN。程序如下: libname study d:\sasdata\mydir。 value $sexfmt F=39。 M=39。 。%39。39。%39。 proc tabulate data= formchar=39。 format= 。 var age heigh weight ine 。 format sex $sexfmt. 。 Label ine=39。 。How to use tabulate statement39。 Title2 39。 。 程序運(yùn)行結(jié)果 如 圖 所示。定義的 PCT 是一種較常用的百分比格式,其中 low0 表示從最小值 LOW 到不包含 0 的值域, 0high 表示從 0 到最大值的值域,圓括號(hào)中的選項(xiàng) prefix=39。表示放在該值第一個(gè)有效數(shù)位前面的一個(gè)字符詞頭(前綴)。*39。 匯總報(bào)表過程 PROC TABULATE 中,規(guī)定分類變量為 SEX,分析變量為 age、 heigh、 weight 和 ine。行維的表達(dá)式和列維表達(dá)式之間用逗號(hào)(,)分隔。formchar=39。選項(xiàng)規(guī)定輸出表格的垂直和水平分隔線及 9 個(gè)角的字符, /rts=8 圖 數(shù)據(jù)集 SURVEY 的匯總報(bào)表 40dca2807e07d52dcf97c3bcf0947ed9 SAS 系統(tǒng)和數(shù)據(jù)分析 電子商務(wù)系列 上海財(cái)經(jīng)大學(xué)經(jīng)濟(jì)信息管理系 IS/SHUFE Created by Page 15 of 28 選項(xiàng)規(guī)定左右邊界的距離,實(shí)際上調(diào)整了分類變量 SEX 列的寬度, rts=8的值越大,SEX 列的寬度越小。 建立 SAS 系統(tǒng)的數(shù)據(jù)集 (DATA STEP) 用戶用 SAS 數(shù)據(jù)步( DATA STEP)創(chuàng)建一個(gè)數(shù)據(jù)集的方法,與前兩種 SAS/ASSIST 和SAS/FSP 創(chuàng)建一個(gè)數(shù)據(jù)集的方法相比, DATA STEP 是一種非交互式的全部編 程實(shí)現(xiàn)的方法。 一、 DATA 程序步的三個(gè)主要步驟 為了從外部原始數(shù)據(jù)文件得到 SAS 數(shù)據(jù)集, DATA程序步的三個(gè)主要步驟為: ? 啟動(dòng)一個(gè)數(shù)據(jù)步,命名將要?jiǎng)?chuàng)建的數(shù)據(jù)集(使用 DATA 語(yǔ)句) ? 確定要讀入的外部文件(使用 INFILE語(yǔ)句) ? 描述如何讀入每一條記錄(使用 INPUT語(yǔ)句) 如果需要在程序中直接嵌入數(shù)據(jù),第二步用 CARDS語(yǔ)句代替 INFILE語(yǔ)句。 Infile ?讀取的外部文件名 ? FIRSTOBS=開始讀入的行 OBS=結(jié)束行 。 Run 。如圖 所示是它執(zhí)行過程的程序流程圖。 YN程序返回 D A T A 步的頂部退出 D A T A 步循環(huán),形成 S A S 數(shù)據(jù)集開始下一個(gè) D A T A 步或 P R O C 步D A T A 開始,并確定創(chuàng)建數(shù)據(jù)集名I N P U T 語(yǔ)句將文件下一條記錄讀入 P D V其它語(yǔ)句可以修改 P D V 中的內(nèi)容P D V 中值在 D A T A 步底部被寫入數(shù)據(jù)集I N F I L E 語(yǔ)句確定外部原始文件用 I N F I L E 所涉及到變量建立P D V ,并初始化外部文件下一條記錄是否為空? 圖 執(zhí)行 DATA 步時(shí)的內(nèi)部循環(huán)過程 40dca2807e07d52dcf97c3bcf0947ed9 SAS 系統(tǒng)和數(shù)據(jù)分析 電子商務(wù)系列 上海財(cái)經(jīng)大學(xué)經(jīng)濟(jì)信息管理系 IS/SHUFE Created by Page 17 of 28 二、 讀入模式 確定變量的讀入模式共有四種: ? column 模式 ? formatted 模式 ? list 模式 ? named 模式 我們?cè)谶@里將介紹三種主要的 column 模式、 formatted 模式和 list 模式。在INPUT 語(yǔ)句中的一般使用形式如下: Input 變量 1 $ 開始列 結(jié)束列 .小數(shù)位 變量 2 …… 。 例如,我們?cè)?NOTEPAD 記事本程序中輸入如圖 所示的內(nèi)容,操作如下: ? 在 Windows 桌面上的開始菜單中選擇 ? 程序 /附件 /記事本 —— 打開 NOTEPAD程序方法 ? 并以 D:\sasdata\mydir目錄下,作為一個(gè)我們用來實(shí)驗(yàn)的外部文件 數(shù)據(jù)步D A T A輸入緩