Bird
Raised Fist0
R Programmingprogramming~20 mins

arrange() for sorting in R Programming - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
arrange() Sorting Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of arrange() with multiple columns
What is the output of the following R code using dplyr::arrange()?
R Programming
library(dplyr)
df <- tibble(name = c("Anna", "Bob", "Anna", "Bob"), score = c(90, 85, 95, 80))
arranged <- arrange(df, name, desc(score))
print(arranged)
A
name score
1 Bob 80
2 Bob 85
3 Anna 90
4 Anna 95
B
name score
1 Anna 95
2 Anna 90
3 Bob 85
4 Bob 80
C
name score
1 Anna 90
2 Anna 95
3 Bob 80
4 Bob 85
D
name score
1 Bob 85
2 Bob 80
3 Anna 95
4 Anna 90
Attempts:
2 left
💡 Hint
Remember that arrange() sorts by the first column ascending, then by the second column descending.
🧠 Conceptual
intermediate
1:00remaining
Understanding arrange() default sorting order
By default, how does arrange() sort the columns in R's dplyr package?
AIt does not sort unless specified explicitly.
BIt sorts columns in descending order by default.
CIt sorts columns randomly by default.
DIt sorts columns in ascending order by default.
Attempts:
2 left
💡 Hint
Think about the default behavior when no desc() is used.
❓ Predict Output
advanced
2:00remaining
arrange() with NA values
What is the output of this R code snippet using arrange() when the data contains NA values?
R Programming
library(dplyr)
df <- tibble(x = c(3, NA, 1, 2))
arranged <- arrange(df, x)
print(arranged)
A
x
1 3
2 2
3 1
4 NA
B
x
1 NA
2 1
3 2
4 3
C
x
1 1
2 2
3 3
4 NA
D
x
1 1
2 2
3 NA
4 3
Attempts:
2 left
💡 Hint
arrange() puts NA values at the end by default when sorting ascending.
🔧 Debug
advanced
2:00remaining
Identify the error in arrange() usage
What error will this R code produce?
R Programming
library(dplyr)
df <- tibble(a = c(1, 2, 3), b = c(4, 5, 6))
arranged <- arrange(df, c(a, b))
print(arranged)
AError: Column `c(a, b)` not found
BError: object 'c' not found
CError: unexpected ',' in 'arrange(df, c('
DNo error, prints sorted dataframe by columns a and b
Attempts:
2 left
💡 Hint
arrange() expects columns as separate arguments, not combined in c().
🚀 Application
expert
3:00remaining
Sorting a grouped dataframe with arrange()
Given this grouped dataframe, what will be the order of rows after applying arrange(desc(score))?
R Programming
library(dplyr)
df <- tibble(group = c('X', 'X', 'Y', 'Y'), score = c(10, 20, 15, 5))
grouped <- group_by(df, group)
arranged <- arrange(grouped, desc(score))
print(arranged)
ARows sorted globally by descending score: 20, 15, 10, 5
BRows sorted within groups by descending score: group X (20, 10), group Y (15, 5)
CRows sorted within groups by ascending score: group X (10, 20), group Y (5, 15)
DRows remain in original order because arrange() does not work on grouped data
Attempts:
2 left
💡 Hint
arrange() sorts the entire dataframe ignoring groups unless combined with summarise or mutate.

Practice

(1/5)
1. What does the arrange() function do in R's dplyr package?
easy
A. Adds new columns to a data frame
B. Filters rows based on a condition
C. Removes duplicate rows from a data frame
D. Sorts rows of a data frame by specified columns

Solution

  1. Step 1: Understand the purpose of arrange()

    The arrange() function is used to reorder rows in a data frame based on one or more columns.
  2. Step 2: Compare with other functions

    Functions like filter() select rows, mutate() adds columns, and distinct() removes duplicates, so they are different.
  3. Final Answer:

    Sorts rows of a data frame by specified columns -> Option D
  4. Quick Check:

    arrange() = Sort rows [OK]
Hint: arrange() always changes row order by columns [OK]
Common Mistakes:
  • Confusing arrange() with filter()
  • Thinking arrange() adds or removes columns
  • Assuming arrange() removes duplicates
2. Which of the following is the correct syntax to sort a data frame df by column age in ascending order using arrange()?
easy
A. arrange(df, age)
B. arrange(age, df)
C. arrange(df$age)
D. arrange(df, desc(age))

Solution

  1. Step 1: Recall arrange() syntax

    The correct syntax is arrange(data_frame, column_name) to sort by that column ascending.
  2. Step 2: Check each option

    arrange(df, age) uses arrange(df, age) which is correct. arrange(age, df) reverses arguments, which is wrong. arrange(df$age) passes a vector, not a data frame. arrange(df, desc(age)) sorts descending, not ascending.
  3. Final Answer:

    arrange(df, age) -> Option A
  4. Quick Check:

    arrange(data, column) = correct syntax [OK]
Hint: First argument is data frame, second is column name [OK]
Common Mistakes:
  • Swapping data frame and column arguments
  • Passing column vector instead of data frame
  • Using desc() for ascending sort
3. Given the data frame df <- data.frame(name = c('Anna', 'Bob', 'Cara'), score = c(88, 95, 90)), what is the output of arrange(df, desc(score))?
medium
A. Rows sorted by score ascending: Anna, Cara, Bob
B. Rows sorted by score descending: Bob, Cara, Anna
C. Rows sorted by name alphabetically: Anna, Bob, Cara
D. Error because desc() cannot be used inside arrange()

Solution

  1. Step 1: Understand desc() inside arrange()

    Using desc(score) sorts the data frame by score in descending order (highest first).
  2. Step 2: Apply sorting to given data

    Scores are Anna=88, Bob=95, Cara=90. Descending order is Bob (95), Cara (90), Anna (88).
  3. Final Answer:

    Rows sorted by score descending: Bob, Cara, Anna -> Option B
  4. Quick Check:

    desc() sorts descending = Bob first [OK]
Hint: desc() reverses sort order inside arrange() [OK]
Common Mistakes:
  • Thinking desc() sorts ascending
  • Confusing sorting by name vs score
  • Believing desc() causes error
4. What is wrong with this code snippet?
arrange(df, desc(age))
where df has no column named age.
medium
A. It will cause an error because age column does not exist
B. It will ignore desc() and sort ascending
C. It will sort by another column automatically
D. It will sort rows by age as NA values

Solution

  1. Step 1: Check column existence in arrange()

    arrange() requires the column to exist in the data frame to sort by it.
  2. Step 2: Behavior when column missing

    If the column age is missing, R will throw an error indicating the column is not found.
  3. Final Answer:

    It will cause an error because age column does not exist -> Option A
  4. Quick Check:

    Missing column in arrange() = error [OK]
Hint: arrange() needs existing columns; missing causes error [OK]
Common Mistakes:
  • Assuming arrange() ignores missing columns
  • Expecting automatic fallback to other columns
  • Thinking NA values are sorted without error
5. You have a data frame df with columns city and temperature. How do you sort df first by city alphabetically ascending, then by temperature descending within each city?
hard
A. arrange(df, desc(city), temperature)
B. arrange(df, desc(city), desc(temperature))
C. arrange(df, city, desc(temperature))
D. arrange(df, temperature, city)

Solution

  1. Step 1: Understand multi-column sorting with arrange()

    arrange() sorts by columns in the order given. First column sorts primary, second column breaks ties.
  2. Step 2: Apply sorting order to columns

    We want city ascending (default) and temperature descending, so use desc(temperature) after city.
  3. Final Answer:

    arrange(df, city, desc(temperature)) -> Option C
  4. Quick Check:

    Primary city asc, secondary temp desc = arrange(df, city, desc(temperature)) [OK]
Hint: List columns in order; use desc() for descending columns [OK]
Common Mistakes:
  • Reversing city sorting with desc() incorrectly
  • Sorting temperature ascending instead of descending
  • Changing order of columns in arrange()
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard