【正文】
)稱為程序數(shù)據(jù)向量,它是根據(jù) DATA步中的 INPUT 語句所確定的變量和變量的讀入模式來創(chuàng)建的,假設(shè) INPUT 語句中各變量的長度為 name $18 、sex $12 、 bdate 18 、 age 13 、 height 1 weight 16 、 ine 1 sdate 16 ,所創(chuàng)建的一個(gè) PDV 如下表: name sex bdate age height weight ine sdate 8 2 8 3 6 6 8 6 整個(gè) DATA步程序執(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 語句將文件下一條記錄讀入 P D V其它語句可以修改 P D V 中的內(nèi)容P D V 中值在 D A T A 步底部被寫入數(shù)據(jù)集I N F I L E 語句確定外部原始文件用 I N F I L E 所涉及到變量建立P D V ,并初始化外部文件下一條記錄是否為空? 圖 執(zhí)行 DATA 步時(shí)的內(nèi)部循環(huán)過程 cc381fe59fe483e9d188433804805395 SAS 系統(tǒng)和數(shù)據(jù)分析 電子商務(wù)系列 上海財(cái)經(jīng)大學(xué)經(jīng)濟(jì)信息管理系 IS/SHUFE Page 8 of 14 ? 一個(gè)存放外部文件記錄的輸入緩沖區(qū) ? 一個(gè)存放當(dāng)前觀測的 PDV向量 ? 一個(gè)外部文件記錄指針 ? 一個(gè)程序指針 ? 一個(gè) SAS 數(shù)據(jù)集觀測指針 如圖 所示。 變量后不帶 $符號(hào)表示此變量讀取數(shù)字。 Proc print data=testd1 。它有一根指針來先定位輸入數(shù)據(jù)的開始位置,輸入格式放在相應(yīng)變量之后,輸入格式 指出了數(shù)據(jù)的類型和取值的寬度。 ? 單尾符 作用是為了執(zhí)行下一條 INPUT語句時(shí) ,仍然把指針保持在當(dāng)前輸入的記錄上。 行固定說明符也適用于 Column 模式。 Input bdate $ 1016 ine $1723 .2 。 Infile ‘d:\sasdata\mydir\’ 。 ( 3) 使用指針控制 指針控制可以把指針在行及列中的缺省位置當(dāng)前行第一列重新定位,使 INPUT 語句知道從哪行哪列開始讀取數(shù)據(jù)。 Infile ‘d:\sasdata\mydir\’ 。 Proc print data=testd3 。例如,下面的數(shù)據(jù)步程序 讀取的是左上角到右下角對角線上的一條記錄。 Proc print data=testd4 。用分組格式表可以縮短 INPUT 語句的書寫長度,因?yàn)檩斎敫袷奖硎潜谎h(huán)使用的,所以相同的格式只要在輸入格式表寫一遍;另外,如果變量名是“相同字符 +序號(hào)”組成的,還可以在變量表中用簡單的形式列出來。 3. list模式 list 模式也稱自由格式輸入,是使用最方便的輸入方式。在 INPUT 語句中它有以下兩種格式 : 格式一: Input 指針控制 變量 1 $amp。 “ amp。因?yàn)樵谡G闆r下空格為分隔符。若 INPUT語句中使用此格式修飾符,則引號(hào)被保留作為這個(gè)值的一部分,若 INPUT語句中沒有使用此格式修飾符,則引號(hào)被去掉。 Input name amp。 在 OUTPUT 窗口中顯示的運(yùn)行結(jié)果如圖 所示。 Proc print data=testd5 。 cc381fe59fe483e9d188433804805395 SAS 系統(tǒng)和數(shù)據(jù)分析 電子商務(wù)系列 上海財(cái)經(jīng)大學(xué)經(jīng)濟(jì)信息管理系 IS/SHUFE Page 14 of 14 將圖 8- 7所示的用逗號(hào)作為分隔符、字段數(shù)據(jù)中有空格和引號(hào)中有逗號(hào)的數(shù)據(jù)記錄讀入到 SAS 數(shù)據(jù)集,相應(yīng)的數(shù)據(jù)步程序如下: Data testd5 。 ? “ : ”——指明變量的值是從以下非空格列中讀取,直到第一次遇到空格或數(shù)據(jù)行末尾 或讀滿輸入格式指定的列數(shù)而結(jié)束。作用如下: ? “amp。 格式二: Input 指針控制 變量 1 :|amp。變量的順序和它們的數(shù)據(jù)值在數(shù)據(jù)行中的順序應(yīng)該是一致的。如果輸入的數(shù)據(jù)的格式不是全部相同,而是部分相同可以在輸入格式表中采用“重