Re: Merging lists if an element in each partially matches?
- To: mathgroup at smc.vnet.net
- Subject: [mg48743] Re: Merging lists if an element in each partially matches?
- From: "Curt Fischer" <crf3 at po.cwru.edu>
- Date: Fri, 11 Jun 2004 23:59:23 -0400 (EDT)
- References: <cabpeo$ol2$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi Charles, If you can convert all of your sample names to strings, the following simple approach might be sufficient--it's hard to tell exactly what you need from your message. In[1]:= nameList={"3_78457","3_78457_5"} Out[1]= {3_78457,3_78457_5} In[2]:= nameList[[1]] Out[2]= 3_78457 In[3]:= partialMatchQ[l_String,m_String]:=If[Union[StringPosition[l,m],StringPositio n[\ m,l]]\[Equal]{},False,True] In[4]:= partialMatchQ@@nameList Out[4]= True Charles Koehler wrote: > Hello, > > I typically need to merge separate sets of data into one list. If > each file contains the same sample I can join them quickly and easily > using various merge and sort routines that have been discussed here in > the the past, such as myMatch5, etc. This is great when the sample > name match exactly, however I am attempting to deal with sample names > that do not match exactly. They will differ only in the length of > name; one list may contain for example a sample name of 3_78457_5 and > the second may only have 3_78457 or 78457_5. > > It should be possible to search the 2 data lists for columns that have > the largest run of consecutively matching characters, and assume that > is the correct match. Would it be possible to develop a similarity > criteria? I can see that this type of function would very useful in > things more important that this. > > Any suggestions greatly appreciated. > > Sincerely, > > Charles Koehler