Sorting is a common operation in Programming is when data is arranged into meaningful order that makes it simpler to understand and analyze. In R, you can store data in various data types such as vectors, data frames, matrices, and arrays.
sort in r
The sort() is a built-in R function used to sort or order a vector or factor (partially) into ascending or descending order. The sort() function takes an input which can be either a vector or factor, and the second parameter decreasing. If the value of decreasing is TRUE, then the output will be in descending order; otherwise, it will be in ascending order.
Syntax
sort(x, decreasing = FALSE, na.last = NA, …)
Parameters
The x is for sorting an R object with a class or a numeric, logical, character, or complex vector.
The decreasing parameter is logical, which can be TRUE or FALSE.
The na.last argument is for controlling the treatment of NAs. If it is TRUE, then missing values in the data are put last; if its value is FALSE, they are put first; if NA, they are removed.
How to sort vectors in R
To sort vectors in R, use the sort() method. R Vector is a sequence of data items of the same data type.
rv <- c(19, 21, 46, 11)
cat("The vector is: ", rv, "\n")
cat("The sorting vector is: ", sort(rv, decreasing = FALSE))
Output
The vector is: 19 21 46 11
The sorting vector is: 11 19 21 46
From the output, you can see that the sorting is in ascending order.
We can sort in descending order bypassing decreasing = TRUE.
rv <- c(19, 21, 46, 11)
cat("The vector is: ", rv, "\n")
cat("The sorting vector is: ", sort(rv, decreasing = TRUE))
Output
The vector is: 19 21 46 11
The sorting vector is: 46 21 19 11
By default, R will sort the vector in ascending order, but if you pass the decreasing value to TRUE, it will sort in descending order.
How to Sort Matrix in R
To sort matrix in R, use the order() method. A matrix data type is similar to a data frame in R, except that all columns in a matrix must be of the same data type, which can be either numeric or character.
Let’s create a 3 x 3 matrix first using matrix() function.
v <- c(11, 21, 13, 41, 15, 61, 17, 81, 19)
mtrx <- matrix(v, nrow = 3, ncol = 3)
print(mtrx)
Output
[,1] [,2] [,3]
[1,] 11 41 17
[2,] 21 15 81
[3,] 13 61 19
To sort the matrix by the second column in ascending order, we would use the order() function. The order()
function returns a permutation that rearranges its first argument into ascending or descending order.
v <- c(11, 21, 13, 41, 15, 61, 17, 81, 19)
mtrx <- matrix(v, nrow = 3, ncol = 3)
print(mtrx)
cat("After sorting a matrix: ", "\n")
print(mtrx[order(mtrx[, 2]),])
Output
[,1] [,2] [,3]
[1,] 11 41 17
[2,] 21 15 81
[3,] 13 61 19
After sorting a matrix:
[,1] [,2] [,3]
[1,] 21 15 81
[2,] 11 41 17
[3,] 13 61 19
You can see that the second column is sorted in ascending order. Therefore, if you want to sort the first or third column, you must pass the column index to get your result.
How to Sort Data Frame in R
To sort a data frame in R, use the order() function. Data Frame is a table or two-dimensional array-like structure in which a row holds a set of values, and each column contains values of one variable.
Consider the following data frame.
df <- data.frame(
service_id = c(1:5),
service_name = c("Netflix", "Disney+", "HBOMAX", "Hulu", "Peacock"),
service_price = c(18, 10, 15, 7, 12),
stringsAsFactors = FALSE
)
# Print the data frame.
print(df)
Output
service_id service_name service_price
1 1 Netflix 18
2 2 Disney+ 10
3 3 HBOMAX 15
4 4 Hulu 7
5 5 Peacock 12
To sort the data frame in descending order by service_price, apply the order() function with the column to sort by specified in the function.
df <- data.frame(
service_id = c(1:5),
service_name = c("Netflix", "Disney+", "HBOMAX", "Hulu", "Peacock"),
service_price = c(18, 10, 15, 7, 12),
stringsAsFactors = FALSE
)
# Print the data frame.
print(df)
cat("After sorting a dataframe: ", "\n")
df[order(-df$service_price),]
Output
service_id service_name service_price
1 1 Netflix 18
2 2 Disney+ 10
3 3 HBOMAX 15
4 4 Hulu 7
5 5 Peacock 12
After sorting a dataframe:
service_id service_name service_price
1 1 Netflix 18
3 3 HBOMAX 15
5 5 Peacock 12
2 2 Disney+ 10
4 4 Hulu 7
The negative sign (-) in front of the column name (df$service_price) is applied to execute the sort in descending order.
Here, we have passed the column name as a reference, but we can also give the column index to the order() function, which will get the exact output.
df <- data.frame(
service_id = c(1:5),
service_name = c("Netflix", "Disney+", "HBOMAX", "Hulu", "Peacock"),
service_price = c(18, 10, 15, 7, 12),
stringsAsFactors = FALSE
)
# Print the data frame.
print(df)
cat("After sorting a dataframe: ", "\n")
df[order(-df[, 3]),]
That’s pretty much it for sorting data frame in R.
For most applications, you should use the function of the order function instead of using the sort function for sorting the data in a frame. However, in the case of this example, it is recommended to save the newly sorted data in the form of a new data frame to do numerous sorting exercises without having to rearrange the data frame.
Conclusion
Sorting is the most common operation in any programming language. In this article, we have seen how to sort the vector, matrix, and data frame in ascending or descending order.

Krunal Lathiya is an Information Technology Engineer by education and web developer by profession. He has worked with many back-end platforms, including Node.js, PHP, and Python. In addition, Krunal has excellent knowledge of Data Science and Machine Learning, and he is an expert in R Language. Krunal has written many programming blogs, which showcases his vast expertise in this field.