20.2 C
London
Sunday, June 22, 2025
HomeSASDescriptive Statistics in SASHow to Use PROC RANK in SAS (With Examples)

How to Use PROC RANK in SAS (With Examples)

Related stories

Learn About Opening an Automobile Repair Shop in India

Starting a car repair shop is quite a good...

Unlocking the Power: Embracing the Benefits of Tax-Free Investing

  Unlocking the Power: Embracing the Benefits of Tax-Free Investing For...

Income Splitting in Canada for 2023

  Income Splitting in Canada for 2023 The federal government’s expanded...

Can I Deduct Home Office Expenses on my Tax Return 2023?

Can I Deduct Home Office Expenses on my Tax...

Canadian Tax – Personal Tax Deadline 2022

  Canadian Tax – Personal Tax Deadline 2022 Resources and Tools...

You can use PROC RANK in SAS to calculate the rank for one or more numeric variables.

Here are the four most common ways to use this procedure:

Method 1: Rank One Variable

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

Method 2: Rank One Variable by Group

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

Method 3: Rank One Variable into Percentiles

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

Method 4: Rank Multiple Variables

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

The following examples show how to use each method with the following dataset in 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;

Example 1: Rank One Variable

The following code shows how to create a new variable called points_rank that ranks the points scored by each team:

/*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;

The team with the most points receives the highest rank and the team with the lowest points receives the lowest rank.

Any ties in points scored are assigned a mean rank. For example, the rows with the first and second lowest points scored both receive a rank of 1.5, since this is the average of 1 and 2.

Note that you can instead use the descending statement to assign the team with the most points the lowest rank:

/*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;

Example 2: Rank One Variable by Group

The following code shows how to create a new variable called points_rank that ranks the points scored, grouped by team:

/*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;

Example 3: Rank One Variable into Percentiles

We can use the groups statement to rank variables into percentile groups. For example, we can rank each value of points into a quartile (four 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;

The rows with the points values in the lowest quartile are assigned a group of 0, the rows with the points in the next lowest quartile are assigned a group of 1, and so on.

Note: To assign values into deciles instead, simply use groups=10.

Example 4: Rank Multiple Variables

The following code shows how to create multiple new variables to rank both points and rebounds:

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

Additional Resources

The following tutorials explain how to perform other common tasks in SAS:

How to Use Proc Summary in SAS
How to Use Proc Tabulate in SAS
How to Use PROC Transpose in SAS
How to Create Frequency Tables in SAS

Subscribe

- Never miss a story with notifications

- Gain full access to our premium content

- Browse free from up to 5 devices at once

Latest stories