Re: Sorting tables by columns
- To: mathgroup at smc.vnet.net
- Subject: [mg6402] Re: [mg6385] Sorting tables by columns
- From: "w.meeussen" <w.meeussen.vdmcc at vandemoortele.be>
- Date: Sun, 16 Mar 1997 19:25:16 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
At 01:21 15-03-97 -0500, fbd2 at psu.edu wrote:
>Hi,
>
>Does anyone know how to sort tables by one of its columns?
>For example, the table
>
>2 3 4 5
>1 2 7 8
>6 9 2 1
>
>can be sorted by column 1, giving:
>
>1 2 7 8
>2 3 4 5
>6 9 2 1
>
>This can be done using Excel; however I need to perform
>this operation inside a Mathematica program.
>Is there an automated procedure in Mathematica to accomplish this?
>
>Thanks,
>
>Flavio
>
>
>
hello,
as I see it, you are supposed to write them 'on the fly',
using tools as found in the help file under 'Sort'.
Something along the lines of:
In[1]:=
it={{2, 3, 4 , 5},
{1 , 2 , 7, 8},
{6 , 9 ,2 , 1}}
Out[1]=
{{2,3,4,5},{1,2,7,8},{6,9,2,1}}
In[2]:=
Sort at it
Out[2]=
{{1,2,7,8},{2,3,4,5},{6,9,2,1}}
In[3]:=
Sort[it,OrderedQ[{#1[[4]], #2[[4]]}]&]
Out[3]=
{{6,9,2,1},{2,3,4,5},{1,2,7,8}}
In[4]:=
Sort[it,#1[[4]]> #2[[4]]&]
Out[4]=
{{1,2,7,8},{2,3,4,5},{6,9,2,1}}
In[5]:=
Dimensions[it]
Out[5]=
{3,4}
In[6]:=
mytablesort[
m_?MatrixQ,
col_Integer/;col<=Dimensions[it][[2]]]:=
Sort[m,#1[[col]]> #2[[col]]& ]
In[7]:=
mytablesort[it,3]
Out[7]=
{{1,2,7,8},{2,3,4,5},{6,9,2,1}}
In[8]:=
Remove[mytablesort]
extension to 3 and more dimensions get more tricky.
bye,
Wouter
Dr. Wouter L. J. MEEUSSEN
eu000949 at pophost.eunet.be
w.meeussen.vdmcc at vandemoortele.be