October 2011
Beginner to intermediate
400 pages
9h 30m
English
Ordinary numerical sorting of a vector can be done with the sort() function, as in this example:
> x <- c(13,5,12,5) > sort(x) [1] 5 5 12 13 > x [1] 13 5 12 5
Note that x itself did not change, in keeping with R’s functional language philosophy.
If you want the indices of the sorted values in the original vector, use the order() function. Here’s an example:
> order(x) [1] 2 4 3 1
This means that x[2] is the smallest value in x, x[4] is the second smallest, x[3] is the third smallest, and so on.
You can use order(), together with indexing, to sort data frames, like this:
> y
V1 V2
1 def 2
2 ab 5
3 zzzz 1
> r <- order(y$V2)
> r
[1] 3 1 2
> z <- y[r,]
> z
V1 V2
3 zzzz 1
1 def 2
2 ab 5
What happened here? We called order() on the second column ...
Read now
Unlock full access