Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
1993
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 1993

[Date Index] [Thread Index] [Author Index]

Search the Archive

sort pairs

  • To: mathgroup at yoda.physics.unc.edu
  • Subject: sort pairs
  • From: nb at eeyore.stanford.edu
  • Date: Thu, 11 Nov 93 16:22:45 -0800

> How can I sort pairs of values -- basing the sort on the first value
> and then break ties on the second value in the pair.
> 
> Let's say I have n pairs on numbers in the following matrix
> 
> data = { {x1,y1}, .....{xi, yi}, .....{xn,yn} }
> 
> Using the Sort function in Mma, I can easily sort on the xi values, but
> how can I do the secondary sort on the yi values??

As you can see from the usage statement, you can specify an ordering
function as a second argument to Sort.

Sort[list] sorts the elements of list into canonical order. 
    Sort[list, p] sorts using the ordering function p.

Below I generate 10 pairs of integers in the range from 1 to 100.

In[1]:= data = Table[Random[Integer, {1, 100}], {10}, {2}]
Out[1]= {{25, 89}, {75, 81}, {31, 78}, {80, 58}, {65, 87}, 
    {23, 12}, {19, 65}, {92, 97}, {54, 10}, {55, 61}}

Using a pure function, I specify an ordering function that compares 
the second element in two pairs.

In[2]:= Sort[data, #2[[2]] > #1[[2]]&]
Out[2]= {{54, 10}, {23, 12}, {80, 58}, {55, 61}, {19, 65}, 
   {31, 78}, {75, 81}, {65, 87}, {25, 89}, {92, 97}}

The pairs are now sorted according to the value of the second element
in each pair.

Nancy Blachman





  • Prev by Date: Re: Naming the Mathematica language
  • Next by Date: MapAt complaint
  • Previous by thread: Re: sort pairs
  • Next by thread: re:sort pairs