Re: select 1st column element based on criteria in 2nd AND 3rd column

• To: mathgroup at smc.vnet.net
• Subject: [mg124519] Re: select 1st column element based on criteria in 2nd AND 3rd column
• From: "Nasser M. Abbasi" <nma at 12000.org>
• Date: Sun, 22 Jan 2012 07:25:41 -0500 (EST)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• References: <jfe3q1\$a2i\$1@smc.vnet.net>

```On 1/21/2012 4:25 AM, hanciong awesome wrote:
> Hello all, suppose I have a table:
>
> pairs = {{1, 3, 4}, {2, 4, 6}, {3, 6, 7}, {4, 1, 8}, {5, 3, 9}, {6, 2,
>      10}, {7, 5, 11}, {8, 2, 13}, {2, 3, 4}, {5, 6, 7}}
>
> how to select rows for which the 2nd column is between 3 and 5, AND
> the 3rd column is between 7 and 10? So I want to do something similar
> to this:
>
> Select[pairs, 5>= #[[2]]>= 3&   AND  10>= #[[3]]>= 7]
>
> but I just couldn't get it to work. what should I do? Thank you
>

So, you want just the first column entry as a result? not
the full row(s) found? ok, so, in your example, the row that
matches this condition is {{5, 3, 9}}, so you want just 5 as
a result, correct?  In these below, I find the row, then simply
you can do Map[First,%] to pick the first entry of the result,
which in general can contain more than one row, but in your example
it happened to be one row.

(1)

Cases[pairs, {_, x_, y_} /; x >= 3 && x <= 5 && y >= 7 && y <= 10]
First /@ %

===>{5}

(2)

Select[pairs,
(
IntervalMemberQ[Interval[{3, 5}], #[[2]]]
&&
IntervalMemberQ[Interval[{7, 10}], #[[3]]]
) &
]
First /@ %

===>{5}

(3)

pos = Position[pairs, {_, x_, y_} /; x>=3 && x<=5 && y>=7 && y<= 10];
Extract[pairs, pos]
First /@ %

===>{5}

(4)

Pick[pairs,
Map[(#[[2]] >= 3 && #[[2]] <= 5 && #[[3]] >= 7 && #[[3]] <= 10) &, pairs]
]
First /@ %

===>{5}

--Nasser

```

• Prev by Date: Re: Derivatives Output as TraditionalForm
• Next by Date: Re: FindRoot and parameters in NIntegrate
• Previous by thread: Re: select 1st column element based on criteria in 2nd AND 3rd column
• Next by thread: 2D Locators controlling 3D points. Have to wrap each part in Dynamic