 
 
 
 
 
 
Re: Selecting by first element of each list
- To: mathgroup at smc.vnet.net
- Subject: [mg48163] Re: Selecting by first element of each list
- From: "Borut Levart" <bole79 at email.si>
- Date: Fri, 14 May 2004 20:59:34 -0400 (EDT)
- References: <c81i3m$509$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hello,
I would do it like this:
1. extract the unique id's
2. select the lists with particular id, one group at a time
In[1]:=
data={{3,5,6,7,8,0},{2,3,4,5,77},{2,4,5,66,77},{3,4,7,8,90,6},{3,45,67,77,
        12}};
In[2]:=
ids=Union[First/@data]
Out[2]=
{2,3}
In[3]:=
Map[Function[id,Select[data,#[[1]]==id&]],ids]
Out[3]=
{{{2,3,4,5,77},{2,4,5,66,77}},{{3,5,6,7,8,0},{3,4,7,8,90,6},{3,45,67,77,12}}
}
Is that it?
Borut > Europe > Slovenia > Ljubljana
<camartin at snet.net> wrote in message news:c81i3m$509$1 at smc.vnet.net...
> Hi,
>
> I'm trying to learn to handle a flat file kind of database using
> Mathematica. An example is the list of lists below:
>
> {{2,3,4,5,77},{2,4,5,66,77},{3,4,7,8,90,6},{3,5,6,7,8,0},{3,45,67,77,12}}
>
> It's actually more complicated than this but good enough for
> illustrative purposes. The first element in each list is actually an
> identifier, like an account number. I want to create a list of lists
> with each account, that is,
>
> {{{2,3,4,5,77},{2,4,5,66,77}},
> {{3,4,7,8,90,6},{3,5,6,7,8,0},{3,45,67,77,12}}}.
>
> When I use Select with an anonymous function such as
>
> Select[list1,#1[[1]] = = #2[[1]]&]
>
> I get an error because it stops (of course) after the first two lists. I
> get the right grouping for the first list but it doesn't finish. I don't
> understand how to use the anonymous function to go through my list (it's
> got several thousand entries) and select and group by the first element
> in each group. I've been through the archive but nothing there quite
helps.
>
> I would appreciate some direction.
>
> Thanks
>
> Cliff
>
>

