2008年11月17日 星期一

合併檔案-Set and Merge

在處理資料的時候,常常需要合併不同資料檔。例如使用社會變遷資料庫時,社會變遷資料庫是一年做一次,需要跨年度比較的時候就會需要把兩個年度的資料合併。這時候就需要使用合併檔案的指令-set和merge。
set和merge都屬於data step,要在data step中才能運作。set和merge的差別在於,set是垂直合併檔案,增加case數量;而merge是水平連結,增加變項數量。
畫個圖給大家看就很清楚了。

我們先產生適用於SET的兩筆資料
data A;
input a b c;
cards;
1 2 3
2 3 4
3 46;
run;

data B;
input a b c;
cards;
4 6 6
5 7 7
6 8 8;
run;
當兩筆資料變項相同的時候,使用set會產生這樣的結果:






data AB;
set A B;
run;




merge使用上要比較注意,就是在水平連結的時候,通常會依照兩筆資料相同的變項來做水平連結增加變項。
先產生使用merge的兩筆資料
data A;
input a b c ;
1 3 4
2 5 6
3 6 7;
run;

data B;
input a d e;
cards;
1 5 5
2 6 6
3 7 7;
run;


proc sort data=A;
by a;
proc sort data=B;
by a;
/*因為下述merge會用到by來連結檔案 所以要先sort(排序)*/


data AB;
merge A B;
by a;
run;





打開sas試試看就知道囉~:)

沒有留言:

張貼留言