# Difference between sort and order in R

Difference between sort and order in R, both “sort()” and “order()” functions are used to arrange data in ascending or descending order.

Group By Minimum in R » Data Science Tutorials

```Syntax
order(x, # Sequence of vectors of the same length
decreasing = FALSE, # Whether to sort in increasing or decreasing order
na.last = TRUE,     # Whether to put NA values at the beginning or at the end
method = c("auto", "shell", "radix")) # Method to be used. Defaults to auto

sort.list(x, # Atomic vector
decreasing = FALSE,
partial = NULL,    # Vector indices for partial sorting
na.last = TRUE,
method = c("auto", "shell", "quick", "radix"))```

However, they have some differences in their usage and output. Here, we will explain the differences between these two functions with examples.

## 1. sort():

The “sort()” function is a basic function that sorts a vector, matrix, or array in ascending or descending order. It can also be used to sort data frames by specific columns.

Example 1: Sorting a numeric vector

```# Define a numeric vector
num_vector <- c(5, 2, 8, 1, 9)

# Sort the vector in ascending order
sorted_num_vector <- sort(num_vector)

# Print the sorted vector
sorted_num_vector```
`[1] 1 2 5 8 9`

## 2. order():

The “order()” function returns the order in which elements should be arranged to sort a vector, matrix, or array. It is often used in combination with other functions to sort data.

Example 1: Sorting a numeric vector using “order()”

```# Define a numeric vector
num_vector <- c(5, 2, 8, 1, 9)

# Find the order in which elements should be arranged to sort the vector
vector_order <- order(num_vector)
vector_order

[1] 4 2 1 3 5

# Sort the vector using the order
sorted_num_vector <- num_vector[vector_order]

# Print the sorted vector
sorted_num_vector```
`[1] 1 2 5 8 9`

Example 2: Sorting a data frame by a specific column using “order()”

```# Load the 'mtcars' dataset
data(mtcars)

# Find the order in which rows should be arranged to sort the 'mtcars' data frame by 'mpg' column
row_order <- order(mtcars\$mpg)
row_order

[1] 15 16 24  7 17 31 14 23 22 29 12 13 11  6  5 10 25 30  1  2  4 32 21  3  9  8 27 26 19 28 18 20

# Sort the data frame using the order
sorted_mtcars <- mtcars[row_order, ]

# Print the sorted data frame
sorted_mtcars```

Output:

```                      mpg cyl  disp  hp drat    wt  qsec vs am gear carb
Cadillac Fleetwood  10.4   8 472.0 205 2.93 5.250 17.98  0  0    3    4
Lincoln Continental 10.4   8 460.0 215 3.00 5.424 17.82  0  0    3    4
Camaro Z28          13.3   8 350.0 245 3.73 3.840 15.41  0  0    3    4
Duster 360          14.3   8 360.0 245 3.21 3.570 15.84  0  0    3    4
Chrysler Imperial   14.7   8 440.0 230 3.23 5.345 17.42  0  0    3    4
Maserati Bora       15.0   8 301.0 335 3.54 3.570 14.60  0  1    5    8
Merc 450SLC         15.2   8 275.8 180 3.07 3.780 18.00  0  0    3    3
AMC Javelin         15.2   8 304.0 150 3.15 3.435 17.30  0  0    3    2
Dodge Challenger    15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
Ford Pantera L      15.8   8 351.0 264 4.22 3.170 14.50  0  1    5    4
Merc 450SE          16.4   8 275.8 180 3.07 4.070 17.40  0  0    3    3
Merc 450SL          17.3   8 275.8 180 3.07 3.730 17.60  0  0    3    3
Merc 280C           17.8   6 167.6 123 3.92 3.440 18.90  1  0    4    4
Valiant             18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
Hornet Sportabout   18.7   8 360.0 175 3.15 3.440 17.02  0  0    3    2
Merc 280            19.2   6 167.6 123 3.92 3.440 18.30  1  0    4    4
Pontiac Firebird    19.2   8 400.0 175 3.08 3.845 17.05  0  0    3    2
Ferrari Dino        19.7   6 145.0 175 3.62 2.770 15.50  0  1    5    6
Mazda RX4           21.0   6 160.0 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag       21.0   6 160.0 110 3.90 2.875 17.02  0  1    4    4
Hornet 4 Drive      21.4   6 258.0 110 3.08 3.215 19.44  1  0    3    1
Volvo 142E          21.4   4 121.0 109 4.11 2.780 18.60  1  1    4    2
Toyota Corona       21.5   4 120.1  97 3.70 2.465 20.01  1  0    3    1
Datsun 710          22.8   4 108.0  93 3.85 2.320 18.61  1  1    4    1
Merc 230            22.8   4 140.8  95 3.92 3.150 22.90  1  0    4    2
Merc 240D           24.4   4 146.7  62 3.69 3.190 20.00  1  0    4    2
Porsche 914-2       26.0   4 120.3  91 4.43 2.140 16.70  0  1    5    2
Fiat X1-9           27.3   4  79.0  66 4.08 1.935 18.90  1  1    4    1
Honda Civic         30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
Lotus Europa        30.4   4  95.1 113 3.77 1.513 16.90  1  1    5    2
Fiat 128            32.4   4  78.7  66 4.08 2.200 19.47  1  1    4    1
Toyota Corolla      33.9   4  71.1  65 4.22 1.835 19.90  1  1    4    1```

In summary, both “sort()” and “order()” functions in R are used to sort data, but they differ in their usage and output.

“sort()” directly sorts the data, while “order()” returns the order in which elements should be arranged to sort the data.

Depending on the specific requirements and the need to preserve the original data structure, you can choose the appropriate function for your task.

Qualification Required for Data Scientist » finnstats