Sort Rows of data.table in R (3 Examples)


This tutorial demonstrates how to reorder the rows of a data.table in the R programming language.

Table of contents:

So let’s dive into it!


Example Data & Software Packages

First, we have to install and load the data.table package:

install.packages("data.table")                     # Install data.table package
library("data.table")                              # Load data.table package

We’ll also have to create some example data:

data <- data.table(x1 = c(2, 2, 2, 2, 1, 1, 1),    # Create data.table
                   x2 = c(2, 1, 5, 4, 7, 3, 6),
                   x3 = letters[1:7])
data                                               # Print data.table


table 1 data frame sort rows data table


Table 1 shows the structure of the example data.table: It contains seven rows and three columns.


Example 1: Sort Rows of data.table Based on One Column

The following syntax shows how to order the rows of a data.table based on a single column of this data.table.

For this task, we can use the setorder function as shown below:

data_new1 <- data                                  # Duplicate data.table
setorder(data_new1, cols = "x1")                   # Reorder data.table
data_new1                                          # Print updated data.table


table 2 data frame sort rows data table


The output of the previous R code is shown in Table 2: A new data.table where the rows have been sorted in ascending order according to the values in the variable x1.


Example 2: Sort Rows of data.table in Descending Order

The first example has explained how to sort the rows of a data.table in ascending order.

This example, in contrast, explains how to order a data.table descendingly.

To achieve this, we have to specify a – sign in front of the variable based on which we want to sort.

In this specific example, we are ordering the rows of our data set based on the column x2:

data_new2 <- data                                  # Duplicate data.table
setorder(data_new2, cols = - "x2")                 # Reorder data.table
data_new2                                          # Print updated data.table


table 3 data frame sort rows data table


By executing the previous R programming code, we have created Table 3, i.e. another data.table sorted in descending order based on the column x2.


Example 3: Sort Rows of data.table Based on Multiple Columns

The following R programming code illustrates how to order the rows of a data.table based on multiple columns.

More precisely, the following R syntax orders our data.table using the two columns x1 and x2:

data_new3 <- data                                  # Duplicate data.table
setorder(data_new3, cols = "x1", "x2")             # Reorder data.table
data_new3                                          # Print updated data.table


table 4 data frame sort rows data table


As shown in Table 4, we have created another version of our input data.table, this time sorted according to the column x1 and to the subgroups of x2.


Video, Further Resources & Summary

I have recently released a video on the Statistics Globe YouTube channel, which shows the R programming code of this tutorial. You can find the video below.



In addition, you may want to read the other R tutorials on my website:


Summary: You have learned in this tutorial how to sort the rows of a data.table in R. If you have additional questions, please tell me about it in the comments below.


Subscribe to the Statistics Globe Newsletter

Get regular updates on the latest tutorials, offers & news at Statistics Globe.
I hate spam & you may opt out anytime: Privacy Policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.