I can reorder the levels of a factor using their indices like this
factor(iris$Species,levels(iris$Species)[c(3:1)])
However if I try to reorder the same factor by name, it does not work:
factor(iris$Species,levels(iris$Species)[c("virginica", "versicolor", "setosa")])
Is there a way to reorder the levels of a factor using their names?
Why don't you use the basic variant with giving new level names:
Be sure to list all level names, though. Otherwise, you will end up with
NA
values.However, for completeness: If you rely on the order of the elements within a factor, you probably should used
ordered
instead offactor
. That is just a factor with, well, ordered levels, or, more mathematically, a relation<
between the factor levels. See: