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