使用名称重新排序因子级别

时间:2013-12-09 10:35:45

标签: r r-factor

我可以使用像这样的索引重新排序因子的级别

factor(iris$Species,levels(iris$Species)[c(3:1)])

但是,如果我尝试按名称重新排序相同的因子,则不起作用:

factor(iris$Species,levels(iris$Species)[c("virginica", "versicolor", "setosa")])

有没有办法使用他们的名字重新排序因子的级别?

1 个答案:

答案 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