005. [proc rank] SAS 데이터 나누기/순위 구하기
목차
1. 데이터 나누기(4등분)/순위 구하기
2. Proc rank 옵션
0. 데이터 불러오기
오늘은 proc rank에 대해 알아보기 위해 아래의 데이터를 이용했다.
머신러닝과 딥러닝을 공부할 수 있는 kaggle에서 다운로드한 데이터이다.
1. 데이터 나누기(4등분)/순위 구하기
Proc rank 코드를 이용하여 데이터의 순위를 구하고 4등분, 5등분, 10등분 등 내가 원하는 대로 데이터를 나눌 수 있다.
data = "불러올 데이터"
groups = "순위개수"
out = "출력할 데이터"
var = "순위를 구할 변수(continuous variable)"
ranks = "순위를 저장할 변수"
proc sort data=data; by id; run;
proc rank data=data groups=10 out=new;
var radius_mean;
ranks rank;
run;
data new;
set new;
keep id radius_mean rank;
run;
해당 코드는 데이터를 10등분하여 0부터 9까지 숫자를 부여하는 것이다.
아래 그림처럼 0위부터 9위까지 값들이 새로운 변수(rank)에 저장된 것을 볼 수 있다.
원래 데이터에서는 4번행과 5번행은 각각 12.94와 13.17로 다른 값을 가지고 있었지만,
rank를 통해 같은 순위인 4위를 부여받았다.
4등분을 하기 위해서는 groups=4로 적어주면 된다.
다음에는 0으로 시작하는 값을 1부터 시작할 수 있는 방법에 대해 알아볼 것이다.
006. [do loop, array] SAS 반복문과 배열로 새로운 변수 만들기
목차 1. 반복문(do loop) 2. 배열(array)로 새로운 변수 만들기 egg-is-life.tistory.com/7 005. [proc rank] SAS 데이터 나누기/순위 구하기 목차 1. 데이터 나누기(4등분)/순위 구하기 2. Proc rank 옵션 0..
egg-is-life.tistory.com
2. Proc rank 옵션
1번에서 말한 옵션 말고도 proc rank에는 값을 나열하는데 여러 옵션이 있다.
Descending
원래는 큰 값이 높은 순위를 부여받았는데,
descending을 적으면 큰 값이 0으로 지정된다.
proc rank data=data groups=10 out=new descending;
var radius_mean;
ranks rank;
run;
Percent
groups를 지우고 percent를 입력하면,
순위가 아닌 각 값들의 퍼센트(%) 값이 새로운 변수에 저장된다.
proc rank data=data out=new percent;
var radius_mean;
ranks rank;
run;
Ties
이 부분에 대해서는 더 공부할 예정이다.
Ties를 입력하면 동일한 순위를 가지고 있는 값들을 어떤 값으로 지정할지 정할 수 있다.
Dense = 최빈값
High = 최댓값
Low = 최솟값
Mean = 평균값
- SAS Enterprise Guide 8.2 버전에서 작성된 글입니다.