목차
1. 데이터 정렬
2. 파일 합치기(merge)
3. 파일 합치기(set)
1. 데이터 정렬
데이터나 파일을 합쳐야 하는 경우가 있는데,
엑셀로 직접 데이터를 복붙해서 만드는 것 대신 sas 코드를 사용하여 한 번에 합칠 수 있다.
파일을 병합하기 전에 가장 먼저 할 일은 데이터 정렬이다.
아래의 데이터 파일을 이용해 불러오기와 내보내기를 할 것이다.
Kaggle에서 받은 데이터로, 랭크 300위까지 추출하여 파일을 합칠 수 있도록 전처리했다.
Vgsales_NA,EU 파일을 이용하여 데이터 정렬을 하려고 한다.
Proc sort로 원하는 변수명을 기준으로 데이터를 정리할 수 있다.
연도(year) 순서대로 정렬을 하고 싶다면 by 부분에 변수명(year)를 적으면 된다.
proc sort data=data-set ;
by variable ;run;
proc print data=data-set ;
run;
Proc print를 통해 데이터를 살펴보면 아래와 같이 정렬된 모습을 볼 수 있다.
만약 변수를 추가해서 순서대로 정렬을 하고 싶다면 변수명만 추가해주면 된다.
proc sort data=data-set ;
by variables ;run;
- 정렬 결과 -
2. 파일 합치기(merge)
데이터를 가로로 붙이고 싶을 때 사용하는 방법이다. (가로결합)
(1) 데이터의 개수가 같을 때
먼저, 합치기 원하는 데이터를 정렬한다.
기준이 되는 변수 중심으로 데이터를 결합하고자 한다면 특정 변수를 by를 이용해 입력해야 한다.
data data-set ;
merge data-set data-set ... ;
by variable ;
run;
raw1과 raw2 파일이 아래처럼 rank를 기준으로 병합되었다.
(2) 데이터의 개수가 다를 때
합치고 싶은 파일의 데이터 개수가 같다면 너무 좋겠지만 아닌 경우가 있다.
그럴 때 2-(1)의 방법대로 merge를 하면 데이터에 공란이 생긴다.
데이터 분석에 방해를 주기 때문에 in과 if문을 사용해 해당 변수에 데이터가 존재하지 않으면 삭제한다.
data data-set ;
merge data-set(in=variable) data-set(in=variable) ... ;
by variable ;if variable and variable ;
run;
var1과 var2는 임시 변수로, 0과 1을 가진다.
- 0 : 값이 없는 경우
- 1 : 값이 있는 경우
두 데이터셋이 둘 다 공통적으로 가지고 있는 데이터만 가지고 싶다면
if var1 and var2;라고 입력하면 된다.
또는,
if var2 = 1; 을 사용해서 'raw2가 가지고 있는 데이터만 뽑아줘' 라는 명령도 가능하다.
결과적으로 JP_Sales, Other_Sales, Global_Sales 데이터가 없던
Rank 3-8위까지 삭제된 것을 알 수 있다.
3. 파일 합치기(set)
데이터를 세로로 붙이고 싶을 때 사용하는 방법이다. (세로결합)
(1) 변수명과 개수가 일치하는 경우
데이터 A의 4행 아래에 데이터 B의 5행을 붙이고자 한다면 아래의 코드를 쓰면 된다.
set은 마지막 행 다음에 다른 데이터의 첫번째 행을 합쳐주는 역할을 한다.
data data-set ;
set data-set data-set ... ;
run;
Rank 1위부터 8위까지 데이터가 결합된 것을 볼 수 있다.
(2) 변수명과 개수가 일치하지 않는 경우
drop/delete 이용
나중에 추가
(3) 특정 변수를 기준으로 나열
특정 변수를 기준으로 나열하고 싶을 때는 먼저 정렬을 해야한다.
sort 이후에 merge와 마찬가지로, by를 이용해 기준이 될 변수를 적어주면 된다.
data data-set ;
set data-set data-set ... ;
by variable ;
run;
year 변수를 기준으로 연도가 오름차순으로 정리된 후 데이터가 결합했다.
'프로그래밍 > SAS' 카테고리의 다른 글
006. [do loop, array] SAS 반복문과 배열로 새로운 변수 만들기 (0) | 2021.08.21 |
---|---|
005. [proc rank] SAS 데이터 나누기/순위 구하기 (0) | 2021.08.21 |
004. [proc sgplot] SAS sgplot 여러가지 옵션 (2): 색상 (0) | 2021.08.21 |
003. [proc sgplot] SAS sgplot 여러가지 옵션 (1) (0) | 2021.08.20 |
001. [import, export] SAS 파일 불러오기 & 내보내기 (0) | 2021.08.20 |
댓글