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.