BookmarkSubscribeRSS Feed

[SAS 활용 노하우] Ranking

Started ‎10-29-2023 by
Modified ‎10-29-2023 by
Views 530

대상 데이터를 정리하거나 시간 데이터를 결합하면 시간 순서로 순위를 매겨 데이터 결합의 조건으로 이용할 수 있습니다.

순위를 매겨 정렬 기능을 하거나 범위를 나눌 수도 있습니다.

데이터 순위를 매기기 위해서 PROC RANK statement 를 사용합니다.

전체 순위를 매길수도 있으며, 특정 그룹 내애서 순위를 매길 수 있습니다.

 

 

proc sort data = work.testdata; by customer_id;

proc rank data = work.testdata 
out=work.testdata2 descending ties low;
by customer_id;
var reserve_datetime;
ranks rank;
run;

 

image.png

 

 

● ties: 동일한 값이 있을 때 순위 중 low는 작은 값을 high는 큰 값으로 지정할 수도 있고 mean으로 평균값을 지정할 수 있습니다.

● descending / ascending: ascending이 default 이며, descending은 큰값으로부터 작은값 순서로 순위가 매겨집니다.

● by: 그룹 내에서 순위를 생성하기 위한 옵션으로 위 코드는 customer_id를 그룹으로 설정하여 그룹별로 순위를 생성합니다. 먼저 그룹내에서 순위를 생성하기 위해서는 그룹별로 정렬이 되어 있어야 합니다.

● var: 순위를 구할 변수로 위 코드는 reserve_datetime의 순위를 구하게 됩니다.

● ranks: 랭킹을 하기 위한 새로운 열로 rank열이 생성되었습니다.

 

 

proc sort data = work.testdata; by customer_id;

proc rank data = work.testdata groups=4
out=work.testdata3 descending;
by customer_id;
var people_num; ranks rank;
run;

 

 

customer_id를 기준으로 데이터를 그룹화하고, people_num 칼럼 열을 내림차순으로 정렬한 후, 각 그룹에서 4개의 랭킹 그룹을 생성합니다.

rank 열에 랭킹 정보가 할당됩니다.

랭킹을 할당해서 그룹간 비교할 수 있으며 데이터를 변형할 수 있습니다.

Version history
Last update:
‎10-29-2023 10:18 AM
Updated by:
Contributors

sas-innovate-white.png

Special offer for SAS Communities members

Save $250 on SAS Innovate and get a free advance copy of the new SAS For Dummies book! Use the code "SASforDummies" to register. Don't miss out, May 6-9, in Orlando, Florida.

 

View the full agenda.

Register now!

Article Labels
Article Tags