▶ update, merge

데이터 결합을 위해서 보통은 merge나 set을 이용하는데요.

여기서는 update와 merge의 차이점을 보기로 하죠~~

 

 

data a1;
input code1 x y @@;
cards;
11 1 2 21 4 3 51 2 5 41 3 7
;
run;

 

data a2;

input code1 y z @@;
cards;
11 1 111 21 . 222 31 3 333 41 4 777 71 7 777
;
run;

 


 

 

두 데이터를 결합하기 위해서는 결합하고자하는 key로 정렬한다.(a2의 경우 정렬되어 있으므로 a1만 정렬)

 

proc sort data=a1; by code1; run;


 

 

 

 

 

두 데이터의 결합

 

왼쪽 데이터(a1a2)는 update로 결합한 결과이며 오른쪽 데이터(a1a2_1)는 merge로 결합한 결과이다.

결과값을 비교해보면 update의 경우 결측치에 대한 값과 새로 추가된 개체에 대한 값만 추가되었음을 볼 수 있고

merge의 경우는 a2의 y변수 값으로 덮어쓰여진 결과를 보인다.

 

 

data a1a2; update a1 a2; by code1; run;

data a1a2_1; merge a1 a2; by code1; run;

 

 

 

 

 

 

 

 

 

 

data a1;
input code1 x y @@;
cards;
11 1 2 21 4 3 51 2 5 41 3 7
;
run;

 

data a2;

input code1 y z @@;
cards;
11 1 111 21 . 222 31 3 333 41 4 777 71 7 777
;
run;

 

proc sort data=a1; by code1; run;

data a1a2; update a1 a2; by code1; run;

data a1a2_1; merge a1 a2; by code1; run;

 

 

 

출처: http://blog.naver.com/hur_yoon/

 

 

 

+ Recent posts