SAS  /  PC

 

五、 範 例 五 : 資料檔合併、更新及其它轉換(MERGE、UPDATE、TRANSPOSE)

程式檔名稱  :  SAMPLE5
DATA GROWA; 資料檔 GROWA 為 86 年 L,
INPUT BIRTHY $ EAR $ W1 W21; Y, D等三品種之早期生長性
CARDS; 狀 (欄位為;出生年度,耳
     86 Y3060 1.0 3.5 號,出生、21日齡體重)
     86 Y2001 1.1 3.4
     86 L2000 1.2 3.1
     86 D1000 1.5 2.9
     86 D5000 1.4 3.9
;
RUN;

 

PROC SORT; BY EAR; RUN; 依耳號排序以便合併或更新
DATA TEST; 資料檔 TEST 為該豬群之參檢
INPUT BIRTHY $ EAR $ ADG FE; 成績,包括ADG、FE等( 依現場
CARDS; 作業耳號次序與早期稱重不同)
     86 D1000 0.77 2.91
     86 D5000 0.98 2.76
     86 L2000 0.81 2.92
     86 T8000 0.83 3.50
     86 D4010 1.01 2.54
;
RUN;

 

PROC SORT; BY EAR; RUN; 依耳號排序以便合併或更新
DATA GROWB; 資料檔 GROWB 為 87 年
INPUT BIRTHY$ EAR $ W1 W21; L, Y, D, T 四品種之早期生長
CARDS; 性狀 (出生、21日齡體重)
     87 T1010 0.7 2.4
     87 Y5040 1.2 3.4
     87 D2600 1.0 3.1
     87 L3800 1.5 2.9
;
RUN;

 

DATA VERTICAL; 合併兩年生長資料
SET GROWA GROWB; (直向合併, 2檔共 9 筆資料)
RUN;

 

PROC PRINT;RUN; (表 5-1)
DATA HORIZ; 合併生長和檢定性狀
MERGE GROWA(IN=CHK1) TEST(IN=CHK2); (依耳號順序,橫向合併)
BY EAR; 共七筆資料,含兩檔間相
RUN; 同或不同耳號者
PROC PRINT;RUN; (表 5-2)
DATA HORIZ; 以第一個檔為主(早期生長
MERGE GROWA(IN=CHK1) TEST(IN=CHK2); 性狀檔)合併檢定檔
IF CHK2 > CHK1 THEN DELETE; (CHK1、CHK2 為兩個檔中是
BY EAR; 否有另一個檔此耳號之資料
RUN;
PROC PRINT;RUN; (表 5-3)
DATA HORIZ; 以兩個檔均有資料才合併成
MERGE GROWA(IN=CHK1) TEST(IN=CHK2); 一個新的資料檔
IF CHK1 NE CHK2 THEN DELETE;
BY EAR;
RUN;
PROC PRINT;RUN; (表 5-4)
DATA TRAN;
INPUT EAR $ W1 ; 輸入擬異動之資料 (變動或
CARDS; 待更正之資料),產生異動檔
     Y3060 2.0
     Y2001 2.0
;
RUN;
PROC SORT; BY EAR; RUN; 異動檔排序
DATA UPDT; 以異動檔來更新主檔的資料
UPDATE GROWA TRAN;
BY EAR;
RUN; 異動後之主檔資料檔列印
PROC PRINT;RUN; (表 5-5)
PROC TRANSPOSE OUT=NEW NAME=WDAY; 將資料轉換形態輸出,以利其它
BY EAR; 程序的分析,以原有欄位名稱為
VAR W1 W21; 資料,輸出一新欄位WDAY原來之
RUN; 觀測值輸出於欄位COL1
DATA NEW;
SET NEW;
IF WDAY='W1' THEN DAY=1;
IF WDAY='W21' THEN DAY=21;
RUN; 產生新欄位 DAY
PROC PRINT;RUN; (表 5-6)
(由表 5-6 可看到日齡和
體重的資料)

表 5-1

OBS BIRTHY EAR W1 W21
1 86 D1000 1.5 2.9
2 86 D5000 1.4 3.9
3 86 L2000 1.2 3.1
4 86 Y2001 1.1 3.4
5 86 Y3060 1.0 3.5
6 87 T1010 0.7 2.4
7 87 Y5040 1.2 3.4
8 87 D2600 1.0 3.1
9 87 L3800 1.5 2.9

表 5-2

OBS

BIRTHY

EAR

W1

W21

ADG

FE
1 86 D1000 1.5 2.9 0.77 2.91
2 86 D4010  . . 1.01 2.54
3 86 D5000 1.4 3.9 0.98 2.76
4 86 L2000 1.2 3.1 0.81 2.92
5 86 T8000  . . 0.83 3.50
6 86 Y2001 1.1 3.4  .  .
7 86 Y3060 1.0 3.5 .  .

表 5-3

OBS

BIRTHY

EAR

W1

W21

ADG

FE
1 86 D1000 1.5 2.9 0.77 2.91
2 86 D5000 1.4 3.9 0.98 2.76
3 86 L2000 1.2 3.1 0.81 2.92
4 86 Y2001 1.1 3.4 . .
5 86 Y3060 1.0 3.5 . .

表 5-4

OBS

BIRTHY

EAR

W1

W21

ADG

FE
1 86 D1000 1.5 2.9 0.77 2.91
2 86 D5000 1.4 3.9 0.98 2.76
3 86 L2000 1.2 3.1 0.81 2.92

表 5-5

OBS

BIRTHY

EAR

W1

W21


1 86 D1000 1.5 2.9
2 86 D5000 1.4 3.9
3 86 L2000 1.2 3.1
4 86 Y2001 1.1 3.4
5 86 Y3060 1.0 3.5

表 5-6

OBS

EAR

WDAY

COL1

DAY
1 D1000 W1 1.5 1
2 D1000 W21 2.9 21
3 D5000 W1 1.4 1
4 D5000 W21 3.9 21
5 L2000 W1 1.2 1
6 L2000 W21 3.1 21
7 Y2001 W1 2.0 1
8 Y2001 W21 3.4 21
9 Y3060 W1 2.0 1
10 Y3060 W21 3.5  21