How to Easily Calculate Percentiles in R (With Examples) (2024)

The nth percentile of a dataset is the value that cuts off the first n percent of the data values when all of the values are sorted from least to greatest.

For example, the 90th percentile of a dataset is the value that cuts of the bottom 90% of the data values from the top 10% of data values.

One of the most commonly used percentiles is the 50th percentile, which represents the median value of a dataset: this is the value at which 50% of all data values fall below.

Percentiles can be used to answer questions such as:

  • What score does a student need to earn on a particular test to be in the top 10% of scores? To answer this, we would find the 90th percentile of all scores, which is the value that separates the bottom 90% of values from the top 10%.
  • What heights encompass the middle 50% of heights for students at a particular school? To answer this, we would find the 75th percentile of heights and 25th percentile of heights, which are the two values that determine the upper and lower bounds for the middle 50% of heights.

How to Calculate Percentiles in R

We can easily calculate percentiles in R using the quantilefunction, which uses the following syntax:

quantile(x, probs = seq(0, 1, 0.25))

where:

  • x: a numeric vector whose percentiles we wish to find.
  • probs: a numeric vector of probabilities in [0,1] that represent the percentiles we wish to find.

The following examples show how to use this function in different scenarios.

Finding Percentiles of a Vector

The following code illustrates how to find various percentiles for a given vector in R:

#create vector of 100 random values uniformly distributed between 0 and 500data <- runif(100, 0, 500)#Find the quartiles (25th, 50th, and 75th percentiles) of the vectorquantile(data, probs = c(.25, .5, .75))# 25% 50% 75% # 97.78961 225.07593 356.47943 #Find the deciles (10th, 20th, 30th, ..., 90th percentiles) of the vectorquantile(data, probs = seq(.1, .9, by = .1))# 10% 20% 30% 40% 50% 60% 70% 80% # 45.92510 87.16659 129.49574 178.27989 225.07593 300.79690 337.84393 386.36108 # 90% #423.28070#Find the 37th, 53rd, and 87th percentilesquantile(data, probs = c(.37, .53, .87))# 37% 53% 87% #159.9561 239.8420 418.4787 

Finding Percentiles of a Data Frame Column

To illustrate how to find the percentiles of a specific data frame column, we’ll use the built-in dataset iris:

#view first six rows of iris datasethead(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species1 5.1 3.5 1.4 0.2 setosa2 4.9 3.0 1.4 0.2 setosa3 4.7 3.2 1.3 0.2 setosa4 4.6 3.1 1.5 0.2 setosa5 5.0 3.6 1.4 0.2 setosa6 5.4 3.9 1.7 0.4 setosa

The following code shows how to find the 90th percentile value for the column Sepal.Length:

quantile(iris$Sepal.Length, probs = 0.9)#90% #6.9 

Finding Percentiles of Several Data Frame Columns

We can also find percentiles for several columns at once using the apply() function:

#define columns we want to find percentiles forsmall_iris<- iris[ , c('Sepal.Length', 'Sepal.Width', 'Petal.Length', 'Petal.Width')]#use apply() function to find 90th percentile for every columnapply(small_iris, 2, function(x) quantile(x, probs = .9))#Sepal.Length Sepal.Width Petal.Length Petal.Width # 6.90 3.61 5.80 2.20 

Finding Percentiles by Group

We can also find percentiles by group in R using the group_by() function from the dplyr library.

The following code illustrates how to find the 90th percentile of Sepal.Length for each of the
three species in the iris dataset:

#load dplyr librarylibrary(dplyr)#find 90th percentile of Sepal.Length for each of the three speciesiris %>% group_by(Species) %>% summarise(percent90 = quantile(Sepal.Length, probs = .9))# A tibble: 3 x 2# Species percent90# #1 setosa 5.41#2 versicolor 6.7 #3 virginica 7.61

The following code illustrates how to find the 90th percentile for all of the variables by Species:

iris %>% group_by(Species) %>% summarise(percent90_SL = quantile(Sepal.Length, probs = .9), percent90_SW = quantile(Sepal.Width, probs = .9), percent90_PL = quantile(Petal.Length, probs = .9), percent90_PW = quantile(Petal.Width, probs = .9))# A tibble: 3 x 5# Species percent90_SL percent90_SW percent90_PL percent90_PW# #1 setosa 5.41 3.9 1.7 0.4 #2 versicolor 6.7 3.11 4.8 1.51#3 virginica 7.61 3.31 6.31 2.4 

Visualizing Percentiles

There is no built-in function to visualize the percentiles of a dataset in R, but we can create a plot to visualize the percentiles relatively easily.

The following code illustrates how to create a plot of the percentiles for the data values of Sepal.Length from theirisdataset:

n = length(iris$Sepal.Length)plot((1:n - 1)/(n - 1), sort(iris$Sepal.Length), type="l", main = "Visualizing Percentiles", xlab = "Percentile", ylab = "Value")

How to Easily Calculate Percentiles in R (With Examples) (1)

Additional Resources

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

How to Calculate Percentile Rank in R
How to Calculate Z-Scores in R
How to Calculate Relative Frequencies Using dplyr

How to Easily Calculate Percentiles in R (With Examples) (2024)
Top Articles
Rick Lee's Oaklawn Picks
Hollys Pawn Saraland Al
Fone Tech Cleveland Ms
Nbc4 Columbus Facebook
895 Area Code Time Zone
One Hour Rosemary Focaccia Bread
Equipment Hypixel Skyblock
Hailie Deegan News, Rumors, & NASCAR Updates
Swap Shop Elberton Ga
Ta Travel Center Las Cruces Photos
Haktuts Coin Master Link
Think Up Elar Level 5 Answer Key Pdf
Restaurant-grevesmuehlen in Freiburg im Breisgau
Bank Hours Saturday Chase
Dirty Old Man Birthday Meme
Oppenheimer Showtimes Near Regal Jack London
My Fico Forums
Descargar AI Video Editor - Size Reducer para PC - LDPlayer
Mchoul Funeral Home Of Fishkill Inc. Services
Albany Want Ad Digest
Bardstown Ky Pawn Shops
farmington, NM cars & trucks - craigslist
Adopting Remote UniFi Devices with Windows Server DHCP – itramblings
Rubmaps Springfield
Downloadhub Downloadhub
Odawa Hypixel
What is a Nutmeg in Soccer? (Explained!) - Soccer Knowledge Hub
Lee Lucas Jaliyah Dad
Olentangy Calendar
Sloansmoans Many
Frostbite Blaster
3850 Colonial Blvd Suite 100 Fort Myers Fl 33966
Fortnite Fap Hero
Abby's Caribbean Cafe
Bluestacks How To Change Master Instance
Advance Auto.parts Near Me
Maurice hat ein echtes Aggressionsproblem
Maven 5X30 Scope
Urgent Care Near Flamingo Crossings Village
Doculivery Cch
Venezuela: un juez ordena la detención del candidato opositor Edmundo González Urrutia - BBC News Mundo
Www.questdiagnostics.com
Best Hair Salon Dublin | Hairdressers Dublin | Boombae
Drugst0Recowgirl Leaks
Business Banking Online | Huntington
Montrose Colorado Sheriff's Department
Jcp Meevo Com
Papa Johns Pizza Hours
Ncaa Wrestling Bracket Challenge
Farmers And Merchants Bank Broadway Va
Privateplaygro1
Enchiladas Suizas | Mexican Food Recipes, Quick and Easy.
Latest Posts
Article information

Author: Roderick King

Last Updated:

Views: 5247

Rating: 4 / 5 (51 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Roderick King

Birthday: 1997-10-09

Address: 3782 Madge Knoll, East Dudley, MA 63913

Phone: +2521695290067

Job: Customer Sales Coordinator

Hobby: Gunsmithing, Embroidery, Parkour, Kitesurfing, Rock climbing, Sand art, Beekeeping

Introduction: My name is Roderick King, I am a cute, splendid, excited, perfect, gentle, funny, vivacious person who loves writing and wants to share my knowledge and understanding with you.