Re: Help with Select[]
- To: mathgroup at smc.vnet.net
- Subject: [mg34652] Re: [mg34631] Help with Select[]
- From: BobHanlon at aol.com
- Date: Fri, 31 May 2002 04:26:30 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
In a message dated 5/30/02 5:13:00 AM, kc144_nospam at ameritech.net writes: >I've got data sets that resemble > >setA={ >{{x1,0},{x2,0}}, >{{x3,0},{x4,0}}, >{{x5,1},{x6,0}}, >{{x7,1},{x8,1}} >}; > >setB={ >{{x1,0},{x2,0},{x3,0}}, >{{x4,0},{x5,0},{x6,0}}, >{{x7,1},{x8,0},{x9,1}}, >{{x10,1},{x11,1},{x12,0}} >}; > >Each element of the set is a list of n (x,y) ordered pairs. So n=2 for >the >first set and n=3 for the second set. In general, n will differ between >the >data sets, but can be known. With each set, I want to select those elements >whose sub-elements all have y=0. This is hard to explain in English, but >easy to express in Mathematica: > >In: Select[setA,(#[[1,2]]==#[[2,2]]==0)&] >Out: {{{x1,0},{x2,0}},{{x3,0},{x4,0}}} > >In: Select[setB,(#[[1,2]]==#[[2,2]]==#[[3,2]]==0)&] >Out: {{{x1,0},{x2,0},{x3,0}},{{x4,0},{x5,0},{x6,0}}} > >First, I would like to know how to generate an arbitrary "selection >function" f[n] so that > >In: Select[setC,f[8]] >Out: {{{x1,0},...,{x8,0}},{{x9,0},...,{x16,0}},...} > >Is it possible to construct such an f? Or is there a better way of >accomplishing this task? It seems that perhaps pattern matching might be >of >use, but I haven't gotten too far with it. > Using a test function Select[setX, And@@Thread[(Last/@#)==0]&] With pattern matching Cases[setX, {{_,0}..}] Bob Hanlon Chantilly, VA USA