Sort levels of a factor from most observed to least observed
sort_levels.RdSort levels of a factor from most observed to least observed. Useful for truly categorical data when you wish to plot it with visually monotonic barplots. If there are ties, then it sorts the tie groups alphabetically.
Arguments
- x
A vector of class factor.
- desc
TRUE or FALSE. TRUE goes from most to least observed (descending). FALSE goes from least to most observed (ascending).
- desc_ties
TRUE or FALSE. If there are ties in counts, then TRUE sorts those groups from z to a (descending), and FALSE sorts from a to z (ascending).
Examples
#----------------------------------------------------------------------------
# sort_levels() examples.
#----------------------------------------------------------------------------
library(bkmisc)
# case for ties in counts
tmp <- factor(c("a", "a", "a", "b", "b", "b", "c"), levels = c("c", "b", "a"))
tmp
#> [1] a a a b b b c
#> Levels: c b a
sort_levels(tmp, desc = TRUE, desc_ties = FALSE)
#> [1] a a a b b b c
#> Levels: a b c
sort_levels(tmp, desc = TRUE, desc_ties = TRUE)
#> [1] a a a b b b c
#> Levels: b a c
sort_levels(tmp, desc = FALSE, desc_ties = FALSE)
#> [1] a a a b b b c
#> Levels: c a b
sort_levels(tmp, desc = FALSE, desc_ties = TRUE)
#> [1] a a a b b b c
#> Levels: c b a
# no ties in counts
tmp <- factor(c("a", "a", "a", "b", "b", "c"), levels = c("c", "b", "a"))
tmp
#> [1] a a a b b c
#> Levels: c b a
sort_levels(tmp, desc = TRUE)
#> [1] a a a b b c
#> Levels: a b c
sort_levels(tmp, desc = FALSE)
#> [1] a a a b b c
#> Levels: c b a