Sorting, Ordering, and Ranking: Unraveling R’s Powerful Functions


Steven P. Sanderson II, MPH


June 2, 2023


In the realm of data analysis and programming, organizing and sorting data efficiently is crucial. In R, a programming language renowned for its data manipulation capabilities, we have three powerful functions at our disposal: order(), sort(), and rank(). In this blog post, we will delve into the intricacies of these functions, explore their applications, and understand their parameters. These R functions are all used to sort data, however, they each have different purposes and use different methods to sort the data.

The order() Function

The order() function in R returns a permutation that would sort a vector or multiple vectors. It provides the indices that arrange the vector in ascending order. Let’s dive into an example to grasp its functionality:

x <- c(10, 4, 8, 2, 6)
ordered_indices <- order(x)
sorted_vector <- x[ordered_indices]

cat("The ordered incdices are: ", ordered_indices)
The ordered incdices are:  4 2 5 3 1
cat("The sorted vector is: ", sorted_vector)
The sorted vector is:  2 4 6 8 10

Here, order(x) provides the indices that would sort the vector x in ascending order. Subsequently, x[ordered_indices] rearranges the vector based on those indices, resulting in a sorted vector.

Parameters of order():

  • ... - Specify the vectors to be sorted.

The sort() Function:

The sort() function in R directly sorts the given vector or matrices. Unlike order(), it returns the sorted vector itself. Let’s illustrate this through an example:

fruits <- c("apple", "banana", "orange", "grape")
sorted_fruits <- sort(fruits)
[1] "apple"  "banana" "grape"  "orange"

In this example, sort(fruits) sorts the character vector fruits alphabetically, returning a new vector sorted_fruits.

Parameters of sort():

  • x - The vector or matrix to be sorted.
  • decreasing - A logical value indicating whether the sorting should be in descending order. (Default is FALSE)

The rank() Function:

The rank() function assigns ranks to the elements in a vector. It returns a vector of the same length as the input vector, indicating the rank of each element. Consider the following example:

scores <- c(80, 60, 90, 75)
ranking <- rank(scores)
[1] 3 1 4 2

In this example, rank(scores) assigns ranks to each element in the vector scores, resulting in a new vector ranking.

Parameters of rank():

  • x - The vector to be ranked.
  • ties.method - A string specifying the method to handle ties in ranking. (Options: “average”, “first”, “last”, “random”, “max”, “min”) (Default is “average”)


Sorting, ordering, and ranking data are essential operations in data analysis. R’s functions, namely order(), sort(), and rank(), equip us with the necessary tools to accomplish these tasks seamlessly. By understanding their applications and parameters, we can efficiently manipulate data and derive meaningful insights. So, go ahead, explore their versatility, and unlock new possibilities in your data analysis endeavors!