SAS / PC
十六. 範 例 十六: 級次排列 (PROC RANK)
程式檔名稱 : SAMPLE16 |
|
OPTIONS LS=75 PS=60 NOOBS; | |
DATA LAYER; |
|
INPUT LINE HENID EN40 EW40 BW40 SDAY CAGE; | 輸入蛋雞40週檢定成績 |
IF(LINE=1 OR LINE=3 | |
OR LINE=4) THEN INDEX=0.277*EN40+0.475*EW40-0.0120*BW40; | 選拔指數計算 |
IF LINE=2 THEN INDEX=0.488*EN40+0.705*EW40-0.0154*BW40; | |
IF LINE=5 THEN INDEX=0.083*EN40+0.730*EW40-0.0083*BW40; | |
IF EN40=0 THEN INDEX= .; | 缺資料者視為無法完檢, |
IF EW40=0 THEN INDEX= .; | 指數設定為缺值 |
IF BW40=0 THEN INDEX= .; | |
* INPUT LINE HENID EN40 EW40 BW40 SDAY CAGE; | |
CARDS; | 欄位名稱 |
1 871001 94.5 0.0 1440 156 3 | |
1 871002 95.0 61.0 1441 154 1 | LINE 品系 |
1 871003 95.0 61.0 1441 154 5 | HENID 雞隻羽號 |
1 872001 78.5 63.0 1550 178 2 | EN40 40週蛋數 |
1 872002 0.0 0.0 0 200 8 | EW40 40週蛋重 |
1 872003 76.5 59.5 1380 155 7 | BW40 40週體重 |
1 873001 88.5 68.0 1370 157 6 | SDAY 初產日齡 |
1 873002 89.5 62.0 1320 154 4 | CAGE 籠號 (住址) |
1 873003 90.5 63.5 1435 153 10 | |
1 874001 85.0 64.0 1480 152 12 | |
1 874002 84.0 61.5 1460 178 14 | |
1 874003 83.0 52.0 1470 159 13 | |
1 875001 101.0 56.5 1350 133 15 | |
1 875002 102.0 60.5 1550 142 9 | |
1 875003 103.0 58.5 1550 141 11 | |
; | |
RUN;
|
|
PROC SORT ; | 依品系、指數大小先行 |
BY LINE DESCENDING INDEX; | 排序 (指數為降序排列) |
RUN;
|
|
PROC RANK DESCENDING TIES=LOW OUT=RANKED ; | 降序級次排列 (DESCEN- |
DING), 同ㄧ級次者均給 | |
同樣較低的名次 (TIES= | |
LOW) | |
VAR INDEX; | 依欄位 INDEX 進行級次 |
排列 | |
RANKS RANKNDX ; | RANKNDX 為產生之級次 |
新欄位 (檢定名次) | |
BY LINE; | 各品系獨立分別排列 |
RUN;
|
|
DATA RANK; | |
SET RANKED; | S : 選留識別欄位 |
IF RANKNDX <= 5 THEN S='S' ; | 名次小於五者, 選留 (S) |
IF RANKNDX > 8 THEN S='D' ; | 名次大於八者, 淘汰 (D) |
IF INDEX= . THEN S='D' ; | 缺指數者, 淘汰 (D) |
IF RANKNDX > 5 AND RANKNDX LE 8 THEN S='P' ; | 6-8 名者, 後補 (P) |
RUN;
|
|
PROC PRINT; | 依級次排列列印 |
VAR CAGE LINE HENID RANKNDX S INDEX EN40 EW40 BW40 SDAY; | (表 16-1) |
BY LINE; | |
RUN; | |
PROC SORT; | 依品系、籠號重新排序, |
BY LINE CAGE ; | 以便利現場作選種作業 |
RUN;
|
|
PROC PRINT; | 不同品系依籠號排列列 |
印 (表 16-2) | |
BY LINE ; | |
RUN; | |
表 16-1 |
|
CAGE LINE HENID RANKNDX S INDEX EN40 EW40 BW40 SDAY | |
6 1 873001 1 S 40.3745 88.5 68.0 1370 157 | |
15 1 875001 2 S 38.6145 101.0 56.5 1350 133 | |
4 1 873002 3 S 38.4015 89.5 62.0 1320 154 | |
9 1 875002 4 S 38.3915 102.0 60.5 1550 142 | |
10 1 873003 5 S 38.0110 90.5 63.5 1435 153 | |
1 1 871002 6 P 37.9980 95.0 61.0 1441 154 | |
5 1 871003 6 P 37.9980 95.0 61.0 1441 154 |
|
11 1 875003 8 P 37.7185 103.0 58.5 1550 141 | |
12 1 874001 9 D 36.1850 85.0 64.0 1480 152 | |
14 1 874002 10 D 34.9605 84.0 61.5 1460 178 | |
2 1 872001 11 D 33.0695 78.5 63.0 1550 178 | |
7 1 872003 12 D 32.8930 76.5 59.5 1380 155 | |
13 1 874003 13 D 30.0510 83.0 52.0 1470 159 | |
3 1 871001 . D . 94.5 0.0 1440 156 | |
8 1 872002 . D . 0.0 0.0 0 200 | |
(註 : TIES=LOW; 所以兩個第六名沒有第七名) |
|
表 16-2 |
|
CAGE LINE HENID RANKNDX S INDEX EN40 EW40 BW40 SDAY | |
1 1 871002 6 P 37.9980 95.0 61.0 1441 154 | |
2 1 872001 11 D 33.0695 78.5 63.0 1550 178 | |
3 1 871001 . D . 94.5 0.0 1440 156 | |
4 1 873002 3 S 38.4015 89.5 62.0 1320 154 | |
5 1 871003 6 P 37.9980 95.0 61.0 1441 154 | |
6 1 873001 1 S 40.3745 88.5 68.0 1370 157 | |
7 1 872003 12 D 32.8930 76.5 59.5 1380 155 | |
8 1 872002 . D . 0.0 0.0 0 200 | |
9 1 875002 4 S 38.3915 102.0 60.5 1550 142 | |
10 1 873003 5 S 38.0110 90.5 63.5 1435 153 | |
11 1 875003 8 P 37.7185 103.0 58.5 1550 141 | |
12 1 874001 9 D 36.1850 85.0 64.0 1480 152 | |
13 1 874003 13 D 30.0510 83.0 52.0 1470 159 | |
14 1 874002 10 D 34.9605 84.0 61.5 1460 178 | |
15 1 875001 2 S 38.6145 101.0 56.5 1350 133 |