MathGroup Archive 2000

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

Search the Archive

Re: Need to reduce 2 lists so that only {x,y} pairs with same x remain

  • To: mathgroup at smc.vnet.net
  • Subject: [mg24186] Re: [mg24134] Need to reduce 2 lists so that only {x,y} pairs with same x remain
  • From: Daniel Lichtblau <danl at wolfram.com>
  • Date: Wed, 28 Jun 2000 22:51:07 -0400 (EDT)
  • References: <200006280611.CAA13359@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

materialsscientist at my-deja.com wrote:
> 
> Hello,
> 
> I have 2 lists of data:
> 
> for example
> data1={{1,1},{1.5,1.5},{2,2},{3,3},{4,4},{5,5}}
> 
> data2={{1,2},{2,3},{3,4},{4,5},{6,7},{7,8}}
> 
> I want to do a point by point comparision, so I
> need to reduce both data1 and data2 so that
> common x data in the {x,y} pairs for each list
> remain.
> 
> Thus the lists should look like this:
> 
> data1={{1,1},{2,2},{3,3},{4,4}}
> data2={{1,2},{2,3},{3,4},{4,5}}
> 
> What function(s) would to something like this?
> 
> Thanks,
> 
> Chuck
> 
> Sent via Deja.com http://www.deja.com/
> Before you buy.

This will work.

In[9]:= d1a = Complement[data1, data2, SameTest->(#1[[1]]==#2[[1]]&)];

In[10]:= d1b = Complement[data1, d1a]
Out[10]= {{1, 1}, {2, 2}, {3, 3}, {4, 4}}

Do similarly to get the reduced version of data2.

A more efficient method:

In[11]:= d1c = Intersection[data1, data2, SameTest->(#1[[1]]==#2[[1]]&)]
Out[11]= {{1, 1}, {2, 2}, {3, 3}, {4, 4}}

In[12]:= d2c = Intersection[data2, data1, SameTest->(#1[[1]]==#2[[1]]&)]
Out[12]= {{1, 2}, {2, 3}, {3, 4}, {4, 5}}

A potential problem is that I'm not sure the language semantics
guarantee that this will always work, if, for example, internals of
Intersection implementation are changed.


Daniel Lichtblau
Wolfram Research


  • Prev by Date: Re: TableForm
  • Next by Date: RE: Need to reduce 2 lists so that only {x,y} pairs with same x remain
  • Previous by thread: Need to reduce 2 lists so that only {x,y} pairs with same x remain
  • Next by thread: Re: Need to reduce 2 lists so that only {x,y} pairs with same x remain