Re: Re: Sorting a list of pairs on the second elements
- To: mathgroup at smc.vnet.net
- Subject: [mg51412] Re: [mg51372] Re: Sorting a list of pairs on the second elements
- From: János <janos.lobb at yale.edu>
- Date: Sat, 16 Oct 2004 04:20:51 -0400 (EDT)
- References: <cklmi7$f1o$1@smc.vnet.net> <200410150647.CAA05265@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
On Oct 15, 2004, at 2:47 AM, Peltio wrote:
> "János" wrote
>
>> Map[Reverse,Sort[Map[Reverse,collectedDnaBin]]]
>
>> Sort[collectedDnaBin,#1[[2]] < #2[[2]] &]
>> but that does not want to do the trick for me.
>
> I wonder why. It should work, albeit inefficently. Mmmmm, have you
> tried
> with parenthesis wrapped around the pure function?
> Sort[collectedDnaBin,(#1[[2]] < #2[[2]])&]
> Have you tried it in a fresh kernel?
Yes, and yes. It does not work.
In[31]:=
Sort[sss, (Last[#1] < Last[#2] )&]
Out[31]=
{{gggcggcgacctcgcgggttttcgctatttatgaaaattttccggtttaaggcgtttccgttcttcttcg
\
tcataacttaatgtttttatttaaaatacc,1},{\
tatttttgtaattcaatactgcttcttcttgcctttgcggaatttggccttttaaaagtatttatcg,13},
{\
tatttttgtaattcaatactgcttcttcttgcctttgcggaatttggccttttaaa,12},{\
tatttttgtaattcaatactgcttcttctt,11},{aaattttccggtttaaggcgtttccgttcttcttcg
tca,\
122},{aaattttccggtttaaggcgtttccgttctt,121},{ttcttgcctttgcgg,1211},{\
actgcttcttcttgcctttgcggaatttg,1221},{\
gctatttatgaaaattttccggtttaaggcgtttccgttcttcttcgtcataa,133},{\
gctatttatgaaaattttccggtttaaggcg,132},{gctatttat,131},{gcggaatttggcctttta
aa,\
1321},{aaattttcc,13211},{aatactgcttcttcttgcctttgcggaatttggccttttaaaagt,1
331},{\
tgaaaattttccggttt,13311}}
Maybe because they are Strings ? I am just guessing...
>
>> In general, if I have a list whose elements are m-member lists, like
>> {{a1,...,am},...,{z1,...,zm}}, then my question is what is the
>> best/fastest way to sort it on the k-th elements of the members where
>> 1<=k<=m and ak,...,zk are arbitrary objects - in my case Strings - and
>> use as little memory for it as possible.
>
> Dunno for the general case, but this -very inelegant - approach to sort
> according to the last element seems to be pretty fast (lots of
> procedures
> but applied to the data as a whole, without timeconsuming mapping on
> every
> single element)
>
> Transpose@Reverse@Transpose@Sort@Transpose@Reverse@Transpose[
> collectedDnaBin ]
This one works fine.
>
> ( The first and last three procs just implement a swap function
> swap[list_]:=Transpose@Reverse@Transpose[list]
> )
>
> The group's gurus will certainly find a proc at least ten times faster
> than
> this, I'm sure.
I don't know. The suggestions I got via the list and private are all
excellent, but the data I had to sort got so big that I even did not
get to that point to able to sort because the Kernel just quitted on me
half way. Now I am on a different "war-path" to get the results I need
:) /My secret prayers go out for a real 64-bit, or MORE, Mathematica
on OSX..../
Thanks a lot,
János
>
> cheers,
> Peltio
> Invalid address in reply-to. Crafty demunging required to mail me.
I tried to employ Mathematica in "Crafty demunging" but I failed, so I
send it "as is". Now I embrace for an "Addressee not found..."
thunder... :)
>
>
>
-------------------------------------------------------------------
János Löbb
Yale University School of Medicine
Department of Pathology
Phone: 203-737-5204
Fax: 203-785-7303
E-mail: janos.lobb at yale.edu
- Follow-Ups:
- Re: Re: Re: Sorting a list of pairs on the second elements
- From: DrBob <drbob@bigfoot.com>
- Re: Re: Re: Sorting a list of pairs on the second elements
- References:
- Re: Sorting a list of pairs on the second elements
- From: "Peltio" <peltio@twilight.zone>
- Re: Sorting a list of pairs on the second elements