Last Updated: January 28, 2019
·
1.701K
· dionysios

Order and Rank in R

There seems to be a lot of confusion with the rank and order functions; They are not the same but inverse of each other.
For a vector x, order(x) is a permutation such that x[order(x)] is ordered, whereas rank(x) simply shows the ranks of the entries of x.
As a result, it is always true that

rank(x)[ order(x) ] = order(x)[ rank(x) ] = 1:length(x)

For example, if

x = c(8,9,7)
d = order(x)      # 3 1 2
r = rank(x)       # 2 3 1   
# r[ d [ k ]] = d[ r[k ]] = k for k = 1,2,3.