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
FE1 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
FE1 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
FE1 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
DAY1 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