Sort by Multiple Columns in R (With Examples)?

How to Sort Data by Multiple Columns in R

In R, the “order” and “arrange” functions can be used to sort data frame by multiple columns. For example, the command “arrange(data, col1, col2, col3)” will sort the data frame “data” by columns “col1”, “col2”, and “col3” in ascending order. Additionally, the “desc” argument can be used to sort the data in descending order. This allows for sorting data frames by multiple columns with different sorting orders.


You can use one of the following methods to sort a data frame by multiple columns in R:

Method 1: Use Base R

df[order(-df$column1, df$column2), ]

Method 2: Use dplyr

library(dplyr)

df %>%
  arrange(desc(column1), column2)

The following examples show how to use each method in practice with the following data frame:

#create data frame
df <- data.frame(team=c('A', 'B', 'C', 'D', 'E', 'F', 'G'),
                 points=c(90, 90, 93, 91, 91, 99, 85),
                 assists=c(33, 28, 31, 39, 34, 40, 44))

#view data frame
df

  team points assists
1    A     90      33
2    B     90      28
3    C     93      31
4    D     91      39
5    E     91      34
6    F     99      40
7    G     85      44

Method 1: Use Base R

The following code shows how to sort the data frame in base R by points descending (largest to smallest), then by assists ascending:

#sort by points descending, then by assists ascending
df[order(-df$points, df$assists), ]

  team points assists
6    F     99      40
3    C     93      31
5    E     91      34
4    D     91      39
2    B     90      28
1    A     90      33
7    G     85      44

Notice that the rows of the data frame are ordered by points from largest to smallest, then by assists from smallest to largest.

Method 2: Use dplyr

The following code shows how to use functions from the package to sort the data frame by points descending (largest to smallest), then by assists ascending:

library(dplyr)

df %>%
  arrange(desc(points), assists)

  team points assists
1    F     99      40
2    C     93      31
3    E     91      34
4    D     91      39
5    B     90      28
6    A     90      33
7    G     85      44

Once again, the rows of the data frame are ordered by points from largest to smallest, then by assists from smallest to largest.

Note: You can find the complete documentation for the arrange() function .

 

Cite this article

stats writer (2025). How to Sort Data by Multiple Columns in R. PSYCHOLOGICAL SCALES. Retrieved from https://scales.arabpsychology.com/stats/sort-by-multiple-columns-in-r-with-examples/

stats writer. "How to Sort Data by Multiple Columns in R." PSYCHOLOGICAL SCALES, 2 Dec. 2025, https://scales.arabpsychology.com/stats/sort-by-multiple-columns-in-r-with-examples/.

stats writer. "How to Sort Data by Multiple Columns in R." PSYCHOLOGICAL SCALES, 2025. https://scales.arabpsychology.com/stats/sort-by-multiple-columns-in-r-with-examples/.

stats writer (2025) 'How to Sort Data by Multiple Columns in R', PSYCHOLOGICAL SCALES. Available at: https://scales.arabpsychology.com/stats/sort-by-multiple-columns-in-r-with-examples/.

[1] stats writer, "How to Sort Data by Multiple Columns in R," PSYCHOLOGICAL SCALES, vol. X, no. Y, ص Z-Z, December, 2025.

stats writer. How to Sort Data by Multiple Columns in R. PSYCHOLOGICAL SCALES. 2025;vol(issue):pages.

Download Post (.PDF)
Slide Up
x
PDF
Scroll to Top