데이터 결합 - 가로결합(MERGE)
수평적으로 데이터를 결합
DATA SAS-data-set; MERGE SAS-data-set; BY by-variable(s); RUN; |
※ BY문장을 사용하기 때문에 반드시 각 데이터를 정렬한 후 결합해야 합니다.
1. 두 테이블의 BY-variable이 모두 같을 경우
DATA1 : Weight
DATA2 : Height
2. 두 테이블의 BY-variable이 같지 않은 경우
① 그대로 결합
DATA1 : Weight ( ID=101 없음)
DATA2 : Height
-> 첫 번째와 두 번째의 예에서 보시다시피 MERGE는 일종의 합집합과 같은 개념입니다. (아무런 옵션이 없을 경우)
② Data Set Option - IN
SAS-data-set(IN=variable) |
-> 이 때 변수는 PDV상에서만 존재하는 임시변수로, 가질 수 있는 값은 0과1입니다. (숫자타입)
0 : 현재 관측치(data step실행과정시 현재 읽고 있는 데이터)가 data set에 없는 경우
1 : 현재 관측치가 data set에 있는 경우
( DATA1과 2는 위와 동일)
PDV
ID |
Age |
Sex |
Height |
Weight |
inhgt |
inwgt1 |
100 |
18 |
F |
158 |
49 |
1 |
1 |
101 |
19 |
M |
172 |
|
1 |
0 |
102 |
17 |
F |
167 |
52.5 |
1 |
1 |
103 |
19 |
F |
160 |
51.3 |
1 |
1 |
104 |
18 |
M |
181 |
78 |
1 |
1 |
105 |
18 |
M |
177 |
78.6 |
1 |
1 |
** 교집합 부분만 얻고 싶을 경우
merge A(in=aa)
B(in=bb);
by id;
if aa=1 and bb=1; <- data set A에도 존재하고 B에도 존재 = 교집합
run;
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Early bird rate extended! Save $200 when you sign up by March 31.