There's a chance that you are mistaken. The levels are displayed in alphabetical order, but they are not ordered here. Note the difference below:
> a <- factor(x = c('a','b','c','d','a','b'))
> a
[1] a b c d a b
Levels: a b c d
> is.ordered(x = a)
[1] FALSE
> b <- factor(x = c('a','b','c','d','a','b'), ordered = TRUE)
> b
[1] a b c d a b
Levels: a < b < c < d
> is.ordered(x = b)
[1] TRUE
I think you're looking for something like this:
set.seed(seed = 33122)
factor_data <- factor(x = sample(x = letters[1:5],
size = 20,
replace = TRUE),
ordered = TRUE)
factor_data
#> [1] d c e e c e b a a b b d d e c e b e c a
#> Levels: a < b < c < d < e
forcats::fct_other(f = factor_data,
keep = tail(x = levels(x = factor_data),
n = 2))
#> [1] d Other e e Other e Other Other Other Other Other
#> [12] d d e Other e Other e Other Other
#> Levels: d < e < Other
Created on 2019-06-15 by the reprex package (v0.3.0)
Hope this helps.