RE: Help with Select[]
- To: mathgroup at smc.vnet.net
- Subject: [mg34661] RE: [mg34631] Help with Select[]
- From: "DrBob" <majort at cox-internet.com>
- Date: Fri, 31 May 2002 04:26:48 -0400 (EDT)
- Reply-to: <drbob at bigfoot.com>
- Sender: owner-wri-mathgroup at wolfram.com
A direct approach is: Select[anySet, And @@ (#[[-1]] == 0 & /@ #) &] Notice that the two instances of # in that line mean different things! If you're interested in rules, there are other solutions. For instance, Select[anySet, And @@ (# /. zeroY) &] where (depending on what non-zero y can be), zeroY is defined by one of these: zeroY = {{_, 0} -> True, {_, 1} -> False} zeroY = {_, x_Integer} -> x == 0 zeroY = {{_, x_Integer} -> x == 0, {_, x_Real} -> x == 0} etc. Bobby Treat -----Original Message----- From: Kevin Gross [mailto:kc144_nospam at ameritech.net] To: mathgroup at smc.vnet.net Subject: [mg34661] [mg34631] Help with Select[] 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