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作为level中顺序第2位,为什么排序排到末尾?而最后一个a 为什么排序到第4位?
劳烦讲解