我可以使用像这样的索引重新排序因子的级别
factor(iris$Species,levels(iris$Species)[c(3:1)])
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试按名称重新排序相同的因子,它不起作用:
factor(iris$Species,levels(iris$Species)[c("virginica", "versicolor", "setosa")])
Run Code Online (Sandbox Code Playgroud)
有没有办法使用他们的名字重新排序因子的级别?
为什么不使用基本变体来提供新的级别名称:
factor(iris$Species, levels=c("virginica", "versicolor", "setosa"))
Run Code Online (Sandbox Code Playgroud)
但请务必列出所有级别名称.否则,你最终会得到NA价值观.
但是,为了完整性:如果依赖于因子中元素的顺序,则可能应该使用ordered而不是factor.这只是有序水平的一个因素,或者在数学上<是因子水平之间的关系.看到:
> ordered(1:3, levels=c('1', '3', '2'))
[1] 1 2 3
Levels: 1 < 3 < 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2087 次 |
| 最近记录: |