Rank Index

Here’s the problem.  I have a list of ‘things’, for example, batch names.  I can also get another list, for example, the start dates of the batches.  How do I sort the batches by date?  The answer: use the Rank Index function.  

I have two lists: lstBatches and lstStartDates.  The two lists share a common index i.e. lstStartDates[i] is the start date for the i’th batch identified by lstBatches[i];

I want to sort the items in lstBatches in ascending order of start date.  The Rank Index function will give me a vector of indices that correspond to the items of the list once sorted into ascending order:

ri = Rank Index(lstStartDates)

Note it doesn’t actually sort the list, but it tells me the order of the items if they were sorted.  I can now apply this ordering to my list of batches:


Share the joy:

One thought on “Rank Index”

  1. A word of caution. If you have a list with a single element e.g. lstBatches= {“test”} then the Rank Index will generate a scalar variable: lstBatchesByDate = “test”. That makes sense if you think about it but if you don’t account for this possibility then you might get caught out when using list-specific functions such as NItems.

Leave a Reply