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