Как использовать PROC RANK в SAS (с примерами)


Вы можете использовать PROC RANK в SAS для вычисления ранга одной или нескольких числовых переменных.

Вот четыре наиболее распространенных способа использования этой процедуры:

Метод 1: ранг первой переменной

proc rank data =original_data out =ranked_data;
 var var1;
 ranks var1_rank;
run ;

Метод 2: Ранжирование одной переменной по группе

proc rank data =original_data out =ranked_data;
 var var1;
 by var2;
 ranks var1_rank;
run ;

Метод 3: ранжировать одну переменную в процентили

proc rank data =original_data groups =4 out =ranked_data;
 var var1;
 ranks var1_rank;
run ;

Метод 4: Ранжирование нескольких переменных

proc rank data =original_data out =ranked_data;
 var var1 var2;
 ranks var1_rank var2_rank;
run ;

В следующих примерах показано, как использовать каждый метод со следующим набором данных в SAS:

/\*create dataset\*/
data original_data;
 input team $ points rebounds;
 datalines ;
A 25 10
A 18 4
A 18 7
A 24 8
B 27 9
B 33 13
B 31 11
B 30 16
;
run ;

/\*view dataset\*/
proc print data =original_data; 

Пример 1: переменная первого ранга

В следующем коде показано, как создать новую переменную с именем points_rank , которая ранжирует очки, набранные каждой командой:

/\*rank points scored by team\*/
proc rank data =original_data out =ranked_data;
 var points;
 ranks points_rank;
run ;

/\*view ranks\*/
proc print data =ranked_data;

Команда, набравшая наибольшее количество баллов, получает высший рейтинг, а команда с наименьшим количеством баллов получает низший рейтинг.

Любому равенству в набранных очках присваивается средний рейтинг. Например, строки с первым и вторым наименьшими баллами получают ранг 1,5, поскольку это среднее значение 1 и 2.

Обратите внимание, что вы можете вместо этого использовать оператор по убыванию , чтобы присвоить команде с наибольшим количеством очков самый низкий ранг:

/\*rank points scored by team in descending order\*/
proc rank data =original_data descending out =ranked_data;
 var points;
 ranks points_rank;
run ;

/\*view ranks\*/
proc print data =ranked_data; 

Пример 2. Ранжирование первой переменной по группе

В следующем коде показано, как создать новую переменную с именем points_rank , которая ранжирует набранные очки, сгруппированные по командам:

/\*rank points scored, grouped by team\*/
proc rank data =original_data out =ranked_data;
 var points;
 by team;
 ranks points_rank;
run ;

/\*view ranks\*/
proc print data =ranked_data; 

Пример 3. Ранжирование одной переменной в процентили

Мы можем использовать оператор groups для ранжирования переменных по процентильным группам. Например, мы можем ранжировать каждое значение баллов в квартиль (четыре группы):

/\*rank points into quartiles\*/
proc rank data =original_data groups =4 out =ranked_data;
 var points;
 ranks points_rank;
run ;

/\*view ranks\*/
proc print data =ranked_data;

Строкам со значениями баллов в самом низком квартиле назначается группа 0 , строкам со значениями баллов в следующем нижнем квартиле назначается группа 1 и так далее.

Примечание.Вместо этого, чтобы присвоить значения децилям, просто используйте groups=10 .

Пример 4. Ранжирование нескольких переменных

В следующем коде показано, как создать несколько новых переменных для ранжирования очков и подборов :

proc rank data =original_data out =ranked_data;
 var points rebounds;
 ranks points_rank rebounds_rank;
run ; 

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в SAS:

Как использовать сводку процедур в SAS
Как использовать Proc Tabulate в SAS
Как использовать транспонирование PROC в SAS
Как создать частотные таблицы в SAS