본문 바로가기
프로그래밍/SAS

005. [proc rank] SAS 데이터 나누기/순위 구하기

by life_is_egg 2021. 8. 21.
반응형

 목차 

1. 데이터 나누기(4등분)/순위 구하기

2. Proc rank 옵션


0. 데이터 불러오기

오늘은 proc rank에 대해 알아보기 위해 아래의 데이터를 이용했다.

머신러닝과 딥러닝을 공부할 수 있는 kaggle에서 다운로드한 데이터이다.

 

data.csv
0.12MB


불러온 데이터셋


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부터 시작할 수 있는 방법에 대해 알아볼 것이다.

 

egg-is-life.tistory.com/8

 

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;

[왼쪽] descending 미입력 > [오른쪽] descending 입력

 

Percent

groups를 지우고 percent를 입력하면,

순위가 아닌 각 값들의 퍼센트(%) 값이 새로운 변수에 저장된다.

proc rank data=data out=new percent;
var radius_mean;
ranks rank;
run;

 

Ties

이 부분에 대해서는 더 공부할 예정이다.

 

Ties를 입력하면 동일한 순위를 가지고 있는 값들을 어떤 값으로 지정할지 정할 수 있다.

Dense = 최빈값

High = 최댓값

Low = 최솟값

Mean = 평균값

ties에서 사용할 수 있는 옵션

 

 

 

 

- SAS Enterprise Guide 8.2 버전에서 작성된 글입니다.

반응형

댓글