Re: Help with Select[]
- To: mathgroup at smc.vnet.net
- Subject: [mg34674] Re: Help with Select[]
- From: "Carl K. Woll" <carlw at u.washington.edu>
- Date: Fri, 31 May 2002 04:27:27 -0400 (EDT)
- Organization: University of Washington
- References: <ad4j0u$jkt$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Kevin, Here is one way (there are many possibilities): Cases[setB, {{_,0}..}] Carl Woll Physics Dept U of Washington "Kevin Gross" <kc144_nospam at ameritech.net> wrote in message news:ad4j0u$jkt$1 at smc.vnet.net... > Hello all, > > 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. > > Thanks in advance, > > Kevin Gross > >