Re: Request for help: working with multi-level lists
- To: mathgroup at smc.vnet.net
- Subject: [mg13675] Re: Request for help: working with multi-level lists
- From: Hans Staugaard <hans.staugaard at get2net.dk>
- Date: Sat, 15 Aug 1998 04:39:08 -0400
- Organization: Get2Net Internet Kunde
- References: <6qp3mc$al3@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
KCConnolly skrev:
>
> I have a list of 10 elements, each of which is a list of three elements
> (let's say in each case an integer, a real number, and a string). I am
> looking for the most elegant way to select those first-level elements
> (i.e., the lists) whose integer element is equal to a particular value
> (let's say "1"), and then to obtain the mean of the real number
> elements of the lists selected. This seems as if it should be simple,
> but everything I try leads to Part specification errors. Any help
> would be greatly appreciated.
this should do the job...
first i define some data (not 10, only 3)
In[1]:=
data={{1,3.14,"Monkey"},{2,2.71,"Donkey"},{1,5.32,"Junkie"}}
Out[1]=
{{1,3.14,"Monkey"},{2,2.71,"Donkey"},{1,5.32,"Junkie"}}
then i select the ones satisfying the criteria
In[2]:=
tmp=Select[data,(#[[1]]==1)&]
Out[2]=
{{1,3.14,"Monkey"},{1,5.32,"Junkie"}}
and then calculate the mean of the real's
In[3]:=
mean=Plus@@Transpose[tmp][[2]]/Length[tmp]
Out[3]=
4.23