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的排序逻辑是什么?
order()
的意思是排序后的元素原来排在第几位,跟是不是 factor 无关。比如,你的 f
用 sort()
排序后第三个元素是 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