元素排序

数组和集合 / 数组

numbers <- c(11, 2, 5, 7, 3)

# sort returns a new vector
ascending <- sort(numbers)
# ascending = 2 3 5 7 11

descending <- sort(numbers, decreasing = TRUE)
# descending = 11 7 5 3 2
# numbers = 11 2 5 7 3

# order gives the positions that sort a vector
pair_letters <- c("B", "A", "C")
pair_numbers <- c(3, 2, 1)
by_letter <- order(pair_letters)
sorted_letters <- pair_letters[by_letter]
sorted_numbers <- pair_numbers[by_letter]
# sorted_letters = A B C
# sorted_numbers = 2 3 1

by_number <- order(sorted_numbers,
                   decreasing = TRUE)
letters_desc <- sorted_letters[by_number]
numbers_desc <- sorted_numbers[by_number]
# letters_desc = B A C
# numbers_desc = 3 2 1

# Number strings: as text, then by value
texts <- c("11", "2", "5")
as_text <- sort(texts)
as_numbers <- texts[order(as.numeric(texts))]
# as_text = 11 2 5
# as_numbers = 2 5 11

cat("ascending =", ascending, "\n")
cat("descending =", descending, "\n")
cat("numbers =", numbers, "\n")
cat("sorted_letters =", sorted_letters, "\n")
cat("sorted_numbers =", sorted_numbers, "\n")
cat("letters_desc =", letters_desc, "\n")
cat("numbers_desc =", numbers_desc, "\n")
cat("as_text =", as_text, "\n")
cat("as_numbers =", as_numbers, "\n")