대상 데이터를 정리하거나 시간 데이터를 결합하면 시간 순서로 순위를 매겨 데이터 결합의 조건으로 이용할 수 있습니다.
순위를 매겨 정렬 기능을 하거나 범위를 나눌 수도 있습니다.
데이터 순위를 매기기 위해서 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;
● 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 열에 랭킹 정보가 할당됩니다.
랭킹을 할당해서 그룹간 비교할 수 있으며 데이터를 변형할 수 있습니다.
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.