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?
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://www.w3resource.com/r-programming-exercises/dataframe/r-programming-data-frame-exercise-12.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics