Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

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

Search the Archive

Re: A list based table join?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg112979] Re: A list based table join?
  • From: "Sjoerd C. de Vries" <sjoerd.c.devries at gmail.com>
  • Date: Sat, 9 Oct 2010 06:33:58 -0400 (EDT)
  • References: <i8jteq$aco$1@smc.vnet.net>

Here are a few possibilities:

Cases[x, {q_, p_} /; MemberQ[y, q]][[All, 2]]

Select[x, MemberQ[y, #[[1]]] &][[All, 2]]

Pick[x[[All, 2]], MemberQ[y, #] & /@ x[[All, 1]]]

Pick[x[[All, 2]], Or @@@ Outer[Equal, x\[Transpose][[1]], y]]

Extract[x[[All, 2]], Position[x[[All, 1]], _?(MemberQ[y, #] &)]]


Cheers -- Sjoerd

On Oct 7, 9:39 am, Leo Ditolaghi <leoditola... at gmail.com> wrote:
> Hi all,
>
> (noob Mathematica question:)
>
> If I have two lists, how do I determine the indices at which the 1st list
> elements are matched by the elements of the second, and then use these
> matching indices to extract corresponding columns in the 1st list (sort of a
> simulated database join)? I.e.,
>
> x = {{"hello", 27},
> {"bye", 30},
> {"hello", 54},
> {"seeya", 100},
> {"hi", 9}}
>
> y = {"hello", "hi"}
>
> where x is the source table, and y is the select criteria (so to speak.)
>
> I wish to produce z, where y defines which elements of x to extract:
>
> z = {27,54,9}
>
> I know this should be easy and elegant, but I am going in circles
> with list functions.
>
> Thanks in advance,
>
> Leo



  • Prev by Date: GeneralizedLinearModelFit and offsert for poisson regression
  • Next by Date: Select, from table data
  • Previous by thread: Re: A list based table join?
  • Next by thread: Re: A list based table join?