MathGroup Archive 2007

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

Search the Archive

Re: Sorting by date


Clifford Martin wrote ..
> Hi All,
> 
> I have a list of lists that looks like so:
> 
> 
> {{3, 137.5, 13978, {2005, 2, 8}}, {3, 138.5, 12519, {2005, 1, 4}}, {3,
> 171.9, 15835, {2005, 4, 12}}, {3, 142.8, 17137, {2005, 11, 19}}, 
>   {3, 161.1, 18881, {2006, 1, 18}}, {3, 108.7, 20055, {2006, 2, 28}}, {3,
> 157, 21498, {2006, 9, 14}}, {3, 118.1, 10891, {2004, 11, 12}}}
> 
> The last element per vector is a date. I'd like to sort the list so that
> the vectors are arranged in ascending order of date, i.e. the vector containing
> {2004,11,12}  should be first and and the vector containing {2006,9,14}
> should be last. Any help would be appreciated.
> 

Clifford,
Sort using the canonical ordering (OrderedQ[....]) on the last element of each list:

In[1]:=
list = {{3, 137.5, 13978, {2005, 2, 8}}, 
    {3, 138.5, 12519, {2005, 1, 4}}, {3, 171.9, 15835, 
     {2005, 4, 12}}, {3, 142.8, 17137, {2005, 11, 19}}, 
    {3, 161.1, 18881, {2006, 1, 18}}, 
    {3, 108.7, 20055, {2006, 2, 28}}, 
    {3, 157, 21498, {2006, 9, 14}}, {3, 118.1, 10891, 
     {2004, 11, 12}}}; 

In[2]:=
Sort[list, OrderedQ[{#1[[-1]], #2[[-1]]}] & ]

Out[2]=
{{3, 118.1, 10891, {2004, 11, 12}}, 
  {3, 138.5, 12519, {2005, 1, 4}}, 
  {3, 137.5, 13978, {2005, 2, 8}}, 
  {3, 171.9, 15835, {2005, 4, 12}}, 
  {3, 142.8, 17137, {2005, 11, 19}}, 
  {3, 161.1, 18881, {2006, 1, 18}}, 
  {3, 108.7, 20055, {2006, 2, 28}}, 
  {3, 157, 21498, {2006, 9, 14}}}

Adriano Pascoletti


  • Prev by Date: Re: Sorting by date
  • Next by Date: Re: Sorting by date
  • Previous by thread: Re: Sorting by date
  • Next by thread: Re: Sorting by date