• R语言
  • order()函数针对factor的排序逻辑是什么?

order()函数对factor的排序逻辑是什么呢?
随便写一个factor如下
f<-factor(x=c("a","a","d","f","a"))
得到factor有3个水平
[1] a a d f a
Levels: a d f
对此factor运行order(),排除顺序为
order(f)
[1] 1 2 5 3 4
不理解顺序是怎么计算出来的,d作为字母顺序在第二位,为什么排序排到末尾?而最后一个a 为什么排序到第4位?

order() 的意思是排序后的元素原来排在第几位,跟是不是 factor 无关。比如,你的 fsort() 排序后第三个元素是 a,它在 f 中是第五个元素。

f <- c("a", "a", "d", "f", "a")

sort(f)
[1] "a" "a" "a" "d" "f"

order(f)
[1] 1 2 5 3 4