       Re: A list based table join?

• To: mathgroup at smc.vnet.net
• Subject: [mg112972] Re: A list based table join?
• From: Bill Rowe <readnews at sbcglobal.net>
• Date: Fri, 8 Oct 2010 04:50:38 -0400 (EDT)

```On 10/7/10 at 3:39 AM, leoditolaghi at gmail.com (Leo Ditolaghi) wrote:

>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}

Here are a few ways to get the result you want:

In:= x = {{"hello", 27}, {"bye", 30}, {"hello", 54}, {"seeya",
100}, {"hi", 9}};
y = {"hello", "hi"};

In:= Cases[x, {_?(MemberQ[y, #] &), _}][[All, 2]]

Out= {27,54,9}

In:= Select[x, MemberQ[y, First[#]] &][[All, 2]]

Out= {27,54,9}

In:= Cases[x, {Alternatives @@ y, _}][[All, 2]]

Out= {27,54,9}

```

• Prev by Date: C-pointers from Mathematica
• Next by Date: Re: A list based table join?
• Previous by thread: Re: A list based table join?
• Next by thread: Re: A list based table join?