w3resource

R Programming: Sort a Data Frame by Multiple Columns

R Programming: Data frame Exercise-12 with Solution

Write a R program to sort a given data frame by multiple column(s).

Sample Solution :

R Programming Code :

# Create a data frame named 'exam_data' with columns 'name', 'score', 'attempts', and 'qualify'
exam_data = data.frame(
  # Define the 'name' column with a vector of names
  name = c('Anastasia', 'Dima', 'Katherine', 'James', 'Emily', 'Michael', 'Matthew', 'Laura', 'Kevin', 'Jonas'),
  # Define the 'score' column with a vector of scores
  score = c(12.5, 9, 16.5, 12, 9, 20, 14.5, 13.5, 8, 19),
  # Define the 'attempts' column with a vector of attempts
  attempts = c(1, 3, 2, 3, 2, 3, 1, 1, 2, 1),
  # Define the 'qualify' column with a vector of qualification statuses
  qualify = c('yes', 'no', 'yes', 'no', 'no', 'yes', 'yes', 'no', 'no', 'yes')
)

# Print a message indicating the original data frame
print("Original dataframe:")

# Print the original data frame to the console
print(exam_data)

# Print a message indicating that the data frame will be sorted by 'name' and 'score' columns
print("DataFrame after sorting 'name' and 'score' columns:")

# Sort the data frame by 'name' and 'score' columns in ascending order
exam_data = exam_data[with(exam_data, order(name, score)), ]

# Print the sorted data frame to the console
print(exam_data)

Output:

[1] "Original dataframe:"
        name score attempts qualify
1  Anastasia  12.5        1     yes
2       Dima   9.0        3      no
3  Katherine  16.5        2     yes
4      James  12.0        3      no
5      Emily   9.0        2      no
6    Michael  20.0        3     yes
7    Matthew  14.5        1     yes
8      Laura  13.5        1      no
9      Kevin   8.0        2      no
10     Jonas  19.0        1     yes
[1] "dataframe after sorting 'name' and 'score' columns:"
        name score attempts qualify
1  Anastasia  12.5        1     yes
2       Dima   9.0        3      no
5      Emily   9.0        2      no
4      James  12.0        3      no
10     Jonas  19.0        1     yes
3  Katherine  16.5        2     yes
9      Kevin   8.0        2      no
8      Laura  13.5        1      no
7    Matthew  14.5        1     yes
6    Michael  20.0        3     yes                         

Explanation:

  • Create Data Frame:
    • exam_data = data.frame(...): Creates a data frame named exam_data with four columns: name, score, attempts, and qualify.
      • name = c(...): Contains names of students.
      • score = c(...): Contains scores of the students.
      • attempts = c(...): Contains the number of attempts each student made.
      • qualify = c(...): Contains whether each student qualifies or not.
  • Print Original Data Frame:
    • print("Original dataframe:"): Prints a message indicating that the original data frame is being displayed.
    • print(exam_data): Displays the original exam_data data frame.
  • Sort Data Frame:
    • print("dataframe after sorting 'name' and 'score' columns:"): Prints a message indicating that the data frame is being sorted by the name and score columns.
    • exam_data = exam_data[with(exam_data, order(name, score)), ]: Sorts exam_data first by name in ascending alphabetical order, and then by score in ascending numerical order for rows with the same name.
  • Print Sorted Data Frame:
    • print(exam_data): Displays the sorted exam_data data frame.

    R Programming Code Editor:



    Have another way to solve this solution? Contribute your code (and comments) through Disqus.

    Previous: Write a R program to drop row(s) by number from a given data frame.
    Next: Write a R program to create inner, outer, left, right  join(merge) from given two data frames.

    Test your Programming skills with w3resource's quiz.

What is the difficulty level of this exercise?



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/r-programming-exercises/dataframe/r-programming-data-frame-exercise-12.php