我可以使用像这样的索引重新排序因子的级别
factor(iris$Species,levels(iris$Species)[c(3:1)])
但是,如果我尝试按名称重新排序相同的因子,则不起作用:
factor(iris$Species,levels(iris$Species)[c("virginica", "versicolor", "setosa")])
有没有办法使用他们的名字重新排序因子的级别?
答案 0 :(得分:6)
为什么不使用基本变体来提供新的关卡名称:
factor(iris$Species, levels=c("virginica", "versicolor", "setosa"))
请务必列出所有级别名称。否则,您最终会获得NA
个值。
但是,为了完整性:如果您依赖于因子中元素的顺序,则可能应该使用ordered
而不是factor
。这仅仅是有序级别的一个因素,或者在数学上,是因子级别之间的关系<
。参见:
> ordered(1:3, levels=c('1', '3', '2'))
[1] 1 2 3
Levels: 1 < 3 < 2