Bird
Raised Fist0
R Programmingprogramming~10 mins

Sorting with order() in R Programming - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to sort the vector nums in ascending order using order().

R Programming
nums <- c(5, 2, 9, 1, 7)
sorted_nums <- nums[[1](nums)]
sorted_nums
Drag options to blanks, or click blank then click option'
Asort
Brank
Cwhich
Dorder
Attempts:
3 left
💡 Hint
Common Mistakes
Using sort() inside the brackets instead of order().
Using rank() which gives ranks, not indices.
Using which() which finds indices of TRUE values.
2fill in blank
medium

Complete the code to sort the data frame df by the column age in ascending order using order().

R Programming
df <- data.frame(name = c("Anna", "Bob", "Cara"), age = c(25, 22, 30))
sorted_df <- df[[1](df$age), ]
sorted_df
Drag options to blanks, or click blank then click option'
Arank
Bsort
Corder
Dwhich
Attempts:
3 left
💡 Hint
Common Mistakes
Using sort() which returns sorted values, not indices.
Using rank() which gives ranks, not indices.
Forgetting the comma after the index to subset rows.
3fill in blank
hard

Fix the error in the code to sort the vector vals in descending order using order().

R Programming
vals <- c(3, 8, 1, 6)
sorted_vals <- vals[[1](-vals)]
sorted_vals
Drag options to blanks, or click blank then click option'
Aorder
Bsort
Crank
Dwhich
Attempts:
3 left
💡 Hint
Common Mistakes
Using sort(-vals) inside brackets which returns values, not indices.
Using rank() which does not give sorting indices.
Using which() which is unrelated here.
4fill in blank
hard

Fill both blanks to sort the data frame df first by score descending, then by age ascending using order().

R Programming
df <- data.frame(name = c("Tom", "Sue", "Jim"), score = c(90, 90, 85), age = c(20, 22, 21))
sorted_df <- df[order([1], [2]), ]
sorted_df
Drag options to blanks, or click blank then click option'
A-df$score
Bdf$score
Cdf$age
D-df$age
Attempts:
3 left
💡 Hint
Common Mistakes
Using df$score instead of -df$score for descending order.
Using -df$age which sorts age descending instead of ascending.
Forgetting the comma after order() arguments.
5fill in blank
hard

Fill all three blanks to create a named vector sorted_vec sorted by values ascending, keeping names, using order().

R Programming
vec <- c(b = 3, a = 1, c = 2)
sorted_vec <- vec[[1](vec)]
names_sorted <- names([2])
result <- setNames([3], names_sorted)
result
Drag options to blanks, or click blank then click option'
Aorder
Bsorted_vec
Cvec
Dnames_sorted
Attempts:
3 left
💡 Hint
Common Mistakes
Using sort() instead of order() for indices.
Mixing up which vector to get names from.
Not using setNames() to keep names with values.

Practice

(1/5)
1. What does the order() function in R do?
easy
A. Sorts the vector and returns the sorted values directly
B. Removes duplicates from a vector
C. Returns the indices that would sort a vector in ascending order
D. Calculates the sum of all elements in a vector

Solution

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

    The order() function returns the positions (indices) that would sort the vector, not the sorted vector itself.
  2. Step 2: Differentiate from sort()

    Unlike sort(), which returns sorted values, order() returns the order of indices to rearrange the vector.
  3. Final Answer:

    Returns the indices that would sort a vector in ascending order -> Option C
  4. Quick Check:

    order() = indices for sorting [OK]
Hint: Remember: order() gives positions, sort() gives sorted values [OK]
Common Mistakes:
  • Confusing order() with sort()
  • Expecting order() to return sorted values
  • Using order() to remove duplicates
2. Which of the following is the correct syntax to sort a vector v in decreasing order using order()?
easy
A. v[sort(v, decreasing = TRUE)]
B. order(v, decreasing = TRUE)
C. sort(order(v), decreasing = TRUE)
D. v[order(v, decreasing = TRUE)]

Solution

  1. Step 1: Use order() with decreasing = TRUE

    To sort vector v in decreasing order, use order(v, decreasing = TRUE) to get indices for sorting from largest to smallest.
  2. Step 2: Index vector v with order()

    Use these indices to reorder v as v[order(v, decreasing = TRUE)].
  3. Final Answer:

    v[order(v, decreasing = TRUE)] -> Option D
  4. Quick Check:

    v[order(v, decreasing=TRUE)] sorts descending [OK]
Hint: Index vector with order() for sorting, add decreasing=TRUE for reverse [OK]
Common Mistakes:
  • Using order() without indexing the vector
  • Trying to sort order() output directly
  • Using sort() on order() output incorrectly
3. What is the output of the following R code?
v <- c(4, 2, 9, 7)
v[order(v)]
medium
A. [1] 2 4 7 9
B. [1] 4 2 9 7
C. [1] 9 7 4 2
D. [1] 2 7 4 9

Solution

  1. Step 1: Calculate order(v)

    For v = c(4, 2, 9, 7), order(v) returns indices that sort v: positions of values in ascending order are 2 (2), 1 (4), 4 (7), 3 (9).
  2. Step 2: Index v with order(v)

    Using these indices: v[c(2,1,4,3)] gives 2 4 7 9.
  3. Final Answer:

    [1] 2 4 7 9 -> Option A
  4. Quick Check:

    v[order(v)] = sorted vector ascending [OK]
Hint: order() gives indices to sort; index vector to get sorted values [OK]
Common Mistakes:
  • Expecting order() to return sorted values directly
  • Mixing up indices and values
  • Incorrect indexing order
4. Identify the error in the following R code snippet:
v <- c(5, 3, 8, 1)
sorted_v <- order(v)
print(sorted_v)
medium
A. order() returns indices, not sorted values; should index v with order(v)
B. Missing parentheses in order function call
C. Vector v is not defined before order()
D. print() cannot display vectors

Solution

  1. Step 1: Understand what order() returns

    order(v) returns the indices that would sort v, not the sorted vector itself.
  2. Step 2: Correct usage to get sorted vector

    To get sorted values, use v[order(v)]. The code assigns indices to sorted_v, so printing it shows positions, not sorted values.
  3. Final Answer:

    order() returns indices, not sorted values; should index v with order(v) -> Option A
  4. Quick Check:

    order() = indices, index vector to sort [OK]
Hint: Use v[order(v)] to get sorted vector, not order(v) alone [OK]
Common Mistakes:
  • Expecting order() to return sorted vector
  • Printing order() output directly
  • Confusing order() with sort()
5. Given two related vectors names <- c("Anna", "Bob", "Cara") and scores <- c(88, 95, 90), how do you sort names by scores in descending order using order()?
hard
A. order(names, decreasing = TRUE)[scores]
B. names[order(scores, decreasing = TRUE)]
C. scores[order(names, decreasing = TRUE)]
D. sort(names, by = scores, decreasing = TRUE)

Solution

  1. Step 1: Use order() on scores with decreasing = TRUE

    To sort names by scores descending, get indices with order(scores, decreasing = TRUE).
  2. Step 2: Index names with these order indices

    Use these indices to reorder names: names[order(scores, decreasing = TRUE)].
  3. Final Answer:

    names[order(scores, decreasing = TRUE)] -> Option B
  4. Quick Check:

    Index names by order(scores, decreasing=TRUE) [OK]
Hint: Sort related vectors by ordering one, index the other [OK]
Common Mistakes:
  • Trying to sort names directly by scores without order()
  • Using sort() with non-existent 'by' argument
  • Mixing order() arguments or indexing incorrectly
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