Topic Overview

Today, we will delve into the usefulness of sorting data within a DataFrame using R's data.table or data.frame. The focus will be on using the order() function, covering both single and multi-column sorting and handling ties in our data.

Sample Dataset

Let's consider the following concise dataset of basketball players and their stats:

In this dataset, we observe a tie in the Points column between 'K. Durant' and 'K. Bryant'.

Learning How to Sort

We can sort the values in a DataFrame using the order() function in R.

This code sorts the DataFrame by the Points column in descending order. The negative sign clarifies that the values are to be sorted in descending order. Also note a comma , after the order function: this comma is a part of the indexing. We index rows by order(-df$Points), and the columns index is empty, meaning we select all the columns.

Now, we can easily identify the players with the highest average points scored.

Sorting by Multiple Columns

In instances of ties, R's order() function enables us to distinguish tied values using additional parameters. Let's resolve the tie between 'K. Durant' and 'K. Bryant' using the Assists column.

In this code, the DataFrame is sorted first by the Points column, then by the Assists column. The negative sign indicates descending order for both columns.

Sorting by Multiple Columns in Different Order

Instead of resolving ties based on the Assists column, we can mix things up a bit by sorting alphabetically by player names in case of ties.

Here, the DataFrame is sorted by the Points column in descending order and the player names in ascending order. Now, in the event of a tie in points, the players are listed alphabetically.

Lesson Summary

Fantastic work! You have deepened your understanding of data.frames in R, mastered sorting data using the order() function, and learned how single or multiple columns can be sorted. It's time to solidify your understanding by practicing with various datasets. Happy R programming!

Sign up
Join the 1M+ learners on CodeSignal
Be a part of our community of 1M+ users who develop and demonstrate their skills on CodeSignal