Как использовать 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 $pointsrebounds;
datalines ;
At 25 10
At 18 4
At 18 7
At 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 Transpose в SAS
Как создать таблицы частот в SAS