The percentile rank of a value tells us the percentage of values in a dataset that rank equal to or below a given value.
You can use the following methods to calculate percentile rank in R:
Method 1: Calculate Percentile Rank for Entire Dataset
library(dplyr)
df %>%
mutate(percent_rank = rank(x)/length(x))
Method 2: Calculate Percentile Rank by Group
library(dplyr)
df %>%
group_by(group_var) %>%
mutate(percent_rank = rank(x)/length(x))
The following examples show how to use each method in practice with the following data frame:
#create data frame df frame(team=rep(c('A', 'B'), each=7), points=c(2, 5, 5, 7, 9, 13, 15, 17, 22, 24, 30, 31, 38, 39)) #view data frame df team points 1 A 2 2 A 5 3 A 5 4 A 7 5 A 9 6 A 13 7 A 15 8 B 17 9 B 22 10 B 24 11 B 30 12 B 31 13 B 38 14 B 39
Example 1: Calculate Percentile Rank for Entire Dataset
The following code shows how to use functions from the dplyr package in R to calculate the percentile rank of each value in the points column:
library(dplyr)
#calculate percentile rank of points values
df %>%
mutate(percent_rank = rank(points)/length(points))
team points percent_rank
1 A 2 0.07142857
2 A 5 0.17857143
3 A 5 0.17857143
4 A 7 0.28571429
5 A 9 0.35714286
6 A 13 0.42857143
7 A 15 0.50000000
8 B 17 0.57142857
9 B 22 0.64285714
10 B 24 0.71428571
11 B 30 0.78571429
12 B 31 0.85714286
13 B 38 0.92857143
14 B 39 1.00000000
Here’s how to interpret the values in the percent_rank column:
- 7.14% of the points values are equal to or less than 2.
- 17.86% of the points values are equal to or less than 5.
- 28.57% of the points values are equal to or less than 7.
And so on.
Example 2: Calculate Percentile Rank by Group
The following code shows how to use functions from the dplyr package in R to calculate the percentile rank of each value in the points column, grouped by team:
library(dplyr)
#calculate percentile rank of points values grouped by team
df %>%
group_by(team) %>%
mutate(percent_rank = rank(points)/length(points))
# A tibble: 14 x 3
# Groups: team [2]
team points percent_rank
1 A 2 0.143
2 A 5 0.357
3 A 5 0.357
4 A 7 0.571
5 A 9 0.714
6 A 13 0.857
7 A 15 1
8 B 17 0.143
9 B 22 0.286
10 B 24 0.429
11 B 30 0.571
12 B 31 0.714
13 B 38 0.857
14 B 39 1
Here’s how to interpret the values in the percent_rank column:
- 14.3% of the points values for team A are equal to or less than 2.
- 35.7% of the points values for team A are equal to or less than 5.
- 57.1% of the points values for team A are equal to or less than 7.
And so on.
Additional Resources
The following tutorials explain how to perform other common tasks in R:
How to Calculate Percentiles in R
How to Calculate Quartiles in R
How to Calculate Quantiles by Group in R