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

[This article was first published on Steve's Data Tips and Tricks, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.


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!

To leave a comment for the author, please follow the link and comment on their blog: Steve's Data Tips and Tricks. offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Never miss an update!
Subscribe to R-bloggers to receive
e-mails with the latest R posts.
(You will not see this message again.)

Click here to close (This popup will not appear again)