我可以像这样使用它们的索引重新排序因子的水平
factor(iris$Species,levels(iris$Species)[c(3:1)])
但是,如果我尝试按名称对相同因子进行重新排序,则无法正常工作:
factor(iris$Species,levels(iris$Species)[c("virginica", "versicolor", "setosa")])
有没有一种方法可以使用其名称重新排序因子的水平?
最佳答案
为什么不使用基本变量来提供新的级别名称:
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
关于r - 使用名称重新排序因子级别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20468420/