11/01 sas 快速複習
TRANSCRIPT
SAS 簡單快速複習
Outline
• 三種資料輸入法• PROC MEANS• 強迫式 & 條件式執行• PROC UNIVARIATE• PROC FREQ• GOTO label• PROC SORT• PROC SUMMARY
三種資料輸入法
輸入資料語法DATA XXX;
INPUT A B C D;
CARDS;
PROC PRINT;RUN;
放數據進來;
建構一個 SAS 資料檔
輸入變項的名稱
數據輸入區
要執行的工作程式碼
SAS 資料檔的檔名• DATA XXX1. 檔名必須以英文字母開始2. 檔名不能有空白3. 每個資料檔給予不同名稱
INPUT 變項類型1. 文字型: NAME, SEX 需用 $ 來宣告變項為文字變項。
2. 數值型: ID, AGE, INCOME,RT…
• DATA 步驟 - 用來建立或修改 SAS 資料
• PROC 步驟 - 處理 SAS 資料檔
• SAS 撰寫特性 - (1) 以 ; 做結尾 (2) 英文大小寫皆可使用 (3) SAS 指令可在同一列 , 也可橫跨數行 (4) /* XXX*/ 註解
1. 欄位讀取法 (column mode)
指定資料起迄位置
Column Input 的特性• Input 是以既定的行數位置來讀取,所以資
料需在指定的行上。
• 文字變項可以包含空格。
• 遺漏值可用 . 或是空格表示。
2. 簡列讀取法 (List Mode)
List Input 的特性• 資料之間要有空格。
• 文字變項不可含空格。
• 遺漏值必須用 . 表示,不可以空格。
• 最常使用此輸入法
3. 格式讀取法 (Formatted mode)
指定開始字元位置 (@)與每筆資料的長度 (0.)
Formatted Input 的特性• Input 是以指定的位置及長度來讀取,所以
資料需在指定的位置上,並對應正確長度。
• 文字變項可以包含空格。
• 遺漏值可用 . 或是空格表示。
• 缺點:– 若數值超過該變項指定位元數,會被 SAS 排除。
– 例Name Age RankTom 18 1Mary 20 2
正確
錯誤
摘要• 欄位讀取法– 需計算行數,遺漏值可以空格或 . 表示
• 簡列讀取法– 最簡單常用,遺漏值只能用 . 表示
• 格式讀取法– 需計算位元數,遺漏值可以空格或 . 表示
PROC MEANS
功用• 可用來計算基本的描述統計值
• 可針對配對資料進行統計檢定
常用格式PROC MEANS options; VAR variables; BY variables; OUTPUT OUT= 輸出檔名 輸出的統計量 ;
強迫式 & 條件式執行
強迫式執行• 變項=被指派的值或函數
• 例如:– 常數的指派: N=20;– 文字的指派: sex=’female’;– 產生新變項: income=revenue-expenses;
條件式執行• if……then……;else……;– if score < 60 then grade = ‘fail’; else grade = ‘pass’;
• if……then do;……end;– if major = ‘psycho’ then do; passing = 70; end;
PROC UNIVARIATE
功用• 可計算指定變數的基本敘述性統計量
– 集中趨勢指標 ( 眾數、中數、平均數 )
– 離散趨勢指標 ( 全距、四分位差、變異數、標準差 )
– 偏度、峰度
常用格式PROC UNIVARIATE options; VAR variables; BY variables; OUTPUT OUT= 輸出檔名 輸出的統計量 ;
PROC UNIVARIATE– DATA= 指定對哪個資料檔分析
– NOPRINT= 不產生報表
– PLOT= 莖葉圖 / 盒圖 / 常態機率圖
– FREQ= 次數分配表 ( 次數 / 百分比 / 累積百分比 )
– NORMAL= 檢定資料是否為常態分配
OUTPUT 輸出統計量指令 說明 指令 說明N 有效觀察體數量 Q3 第三四分位數
NMISS 遺失的觀察體個數 MEDIAN 中位數NOBS 觀察體總數 Q1 第一四分位數MEAN 平均數 QRANGE Q3 - Q1
SUM 總和 P1 第 1 百分位數STD 標準差 P5 第 5 百分位數VAR 變異數 P10 第 10 百分位數
SKEWENESS 偏度 P90 第 90 百分位數KURTOSIS 峰度 P95 第 95 百分位數SUMWT 加權值總和 P99 第 99 百分位數MAX 最大值 MODE 眾數MIN 最小值 SIGNRANK 等級符號檢定
RANGE 全距 NORMAL 常態分配檢定
PROC FREQ
功用
• 用來建立指定變數的次數分配表或列聯表
• 亦可以算出卡方檢定的統計量
常用格式PROC FREQ options; TABLES requests / options ; BY variables;
PROC FREQ options
• DATA= SAS dataset– 指定要分析的資料集,若不指定則取最新建立的
• ORDER 指令
ORDER=freq 表格中的變數值按次數遞減輸出
ORDER=data 表格中的變數值以資料輸入順序輸出
ORDER=internal 表格中的變數值以系統預設順序輸出
ORDER=formatted 表格中的變數值以 FORMAT 敘述句定義的順序輸出
TABLES 敘述句• 用以建立次數分配表&列聯表的描述
• 格式
• requests 是由欲用來建立表格的變數名稱構成
TABLES requests / options
敘述句 說明 TABLES a; 產生變數 a 的次數分配表 TABLES a c; 分別產生變數 a 和 c 的次數分配
表 TABLES a--e; 產生變數 a 到 e 的次數分配表
兩個以上變數的交叉表敘述句 說明
TABLES a*b; 產生變數 a 和 b 的交叉分析表
TABLES a*(b c);
產生變數 a 和 b 的交叉分析表
產生變數 a 和 c 的交叉分析表
( 和 a*b a*c 是同樣的意義 )
TABLES a*b*c; 產生三層次的交叉分析表
TABLES 敘述句• options – 一般選擇項
– 其他表資訊選擇項
– 禁止印出選擇項
TABLES options• 一般選擇項– MISSING– 視遺失值為非缺失值,包含在分析中
– LIST– 指定二維以上表格不以列聯表方式輸出
– OUT=dataset– 產生一個輸出資料集,包含變數類別 & 次數分配
DATA d1; INPUT a b sex $ @@;CARDS;1 1 F 3 1 F2 2 M 1 1 F. 2 M . 1 M2 2 M 2 2 .;RUN;PROC FREQ; TABLES a b sex; TITLE ' 無 MISSING 選項的結果 ';RUN;PROC FREQ; TABLES a b sex/missing; TITLE ' 有 MISSING 選項的結果 ';RUN;
DATA d1; INPUT a b sex $ @@;CARDS;1 1 F 3 1 F2 2 M 1 1 F. 2 M . 1 M2 2 M 2 2 .;RUN;PROC FREQ DATA=d1; TABLES a*b sex; TITLE ' 未使用 LIST 選項指令 ';RUN;PROC FREQ DATA=d1; TABLES a*b sex / list; TITLE ' 使用 LIST 選項指令 ';RUN;
DATA d1; INPUT a b sex $ @@;CARDS;1 1 F 3 1 F2 2 M 1 1 F. 2 M . 1 M2 2 M 2 2 .;RUN;PROC FREQ; TABLES a*b sex/list; TITLE ' 未使用 ORDER 指令時 ';RUN;PROC FREQ order=freq; TABLES a*b sex/list; TITLE ' 使用 ORDER=FREQ 指令時 ';RUN;
TABLES options• 其他表選擇項– EXPECTED– 指定列印每個細格中的期望次數
– DEVIATION– 指定列印每個細格中的次數 & 期望次數的離差
– CUMCOL– 指定列印每個細格的累積百分比
TABLES options• 其他表選擇項– MISSPRINT– 列印遺失值的次數,但不包含在其他統計量計算
– SPARSE– 指定列印 TABLES 敘述句中所有的變數組合
– CUMCOL– 指定列印每個細格的累積百分比
TABLES options• 禁止印出選擇項– NOFREQ / NOPERCENT– 不列印列聯表中細格的 次數 / 百分比
– NOROW / NOCOL– 不列印列聯表中細格的 列 / 行 百分比
– NOPRINT– 不列印任何表格,但列印出其他選項的統計量
DATA freq; INPUT x $ y $ @@;CARDS;A B B A . B A A B A A A B A A A A B A A B A A B;RUN;
PROC FREQ DATA=freq; TITLE ' 無 TABLE 敘述句 ';RUN;
PROC FREQ DATA=freq; TABLES x*y / LIST MISSPRINT; TITLE ' 具 MISSPRINT 選項的二因子次數分配表 ';
PROC FREQ DATA=freq; TABLES x*y / LIST SPARSE; TITLE ‘ 具 SPARSE 選項的二因子次數分配表 ';RUN;
GOTO label
Result
Return
Result
PROC SORT
功用• 根據指定的變數將資料依序排列
• 排序後才能在其他 PROC 使用 BY 敘述句
常用格式PROC SORT options; BY variables;
PROC SORT options :data= 要排序的資料檔out= 排序後的新資料名稱
Result
PROC SUMMARY
功用• 幾乎等於 PROC MEANS
• 與 PROC MEANS 的差異– PROC MEANS 會自動輸出結果– 無法算信賴區間– 無法做 t 檢定
END