MathGroup Archive 2012

[Date Index] [Thread Index] [Author Index]

Search the Archive

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>
  • Reply-to: nma at 12000.org

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