Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2013

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

Search the Archive

Re: sorting?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg129593] Re: sorting?
  • From: awnl <awnl at gmx-topmail.de>
  • Date: Sat, 26 Jan 2013 16:59:46 -0500 (EST)
  • Delivered-to: l-mathgroup@mail-archive0.wolfram.com
  • Delivered-to: l-mathgroup@wolfram.com
  • Delivered-to: mathgroup-newout@smc.vnet.net
  • Delivered-to: mathgroup-newsend@smc.vnet.net
  • References: <kdvtkk$fp2$1@smc.vnet.net>

Hi,

 > I have a large list of simple numerical lists, and I want to sort it
 > using two criteria. in the simplest case, suppose the sublists are of
 > length two, and that my first criterion is the quotient of part one
 > by part two, and my second criterion is the size of part two (no
 > zeros in part 2.  I want to sort using the first criterion, and then
 > break the ties using the second one. So for example if I had
 > lalista={{0,5},{8,8},{2,2},{3,5},{1,3},{3,9}}, the sorting should
 > return
 >
 > {{8,8},{2,2},{3,5},{3,9},{1,3},{0,5}}
 >
 > Of course this can be done, but I wonder if it is a way to make this
 > only with native Mathematica tools (wich is always far more
 > efficient).
 >

I think you are looking for SortBy, which can be given a list of pure 
functions to define the sorting, e.g. like this (the minus signs reverse 
the sorting so I get what you want, it might need adoption depending on 
what you really want...):

SortBy[lalista, {-#[[1]]/#[[2]] &, -#[[2]] &}]

hth,

albert



  • Follow-Ups:
    • Re: sorting?
      • From: Francisco Gutierrez <fgutiers2002@yahoo.com>
  • Prev by Date: Re: Mathematica and Lisp
  • Next by Date: Re: Setting parameters via Manipulate?
  • Previous by thread: Re: sorting?
  • Next by thread: Re: sorting?