끄적이는 프로그래밍/SAS 프로그래밍

SAS programming 기초 (자료의 결합 - 세로 결합)

요맘때10 2022. 8. 29. 19:22
반응형

목적

오늘은 SAS 프로그램을 이용하여 자료의 결합에 대해 알아보자. Sample data는 적당히 만들어 이용할 것이다. SAS 프로그램에서 결합의 종류는 크게 세로 결합과 가로 결합이 있는데,


 

1. 세로 결합 (Set)

- 두개 이상의 데이터셋들을 위 또는 아래로 붙이는 결합

- data step 내에서 set문을 이용

- set 데이터셋1 데이터셋2 ... 데이터셋n

- 먼저 작성하는 순서대로 데이터셋1이 가장 위, 데이터셋n이 가장 아래에 붙는다.

- 붙일 변수는 동일하게 만든다.

 

먼제 예제 데이터셋 a, b를 만들고

data a;
  input num;
datalines;
1
2
3
;
run;

data b;
  input num;
datalines;
4
5
6
;
run;

세로 결합을 해보면

data c;
  set a b;
run;

만약 데이터셋들의 변수가 다르다면 아래와 같이 붙으니 조심할 것


반응형

2. 세로 결합 (Proc append)

세로 결합은 append 프로시저를 이용해도 가능하다.

proc append base=a data=b;
run;

주의할 점은 결합 결과 새로운 데이터셋이 생기는 것이 아니고, base 데이터셋에 직접 결합하는 방식이다.

결과는 a 데이터셋에 b 데이터셋이 세로 결합 된다.

만약 데이터셋 들의 base 데이터셋에 있는 변수가 세로 결합할 데이터셋에는 없다면 force 옵션을 이용하자.

먼저 예제 데이터셋을 만들고

data a;
  input num score;
datalines;
1 100
2 64
3 50
;
run;

data b;
  input num;
datalines;
4
5
6
;
run;

세로 결합을 해보면

proc append base=a data=b force;
run;

반대로 base 데이터셋에 없는 변수가 세로 결합할 데이터셋에는 있다면 force 옵션을 사용하더라도 해당 변수는 붙지 않을 테니 조심하자.

proc append base=b data=a force;
run;

score 변수는 세로 결합되지 않았다는 것을 알 수 있다.

반응형