<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Help with data lookup and flagging in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Help-with-data-lookup-and-flagging/m-p/349759#M81211</link>
    <description>Thank you Art and Ksharp for the suggestions</description>
    <pubDate>Thu, 13 Apr 2017 13:31:54 GMT</pubDate>
    <dc:creator>Jagadishkatam</dc:creator>
    <dc:date>2017-04-13T13:31:54Z</dc:date>
    <item>
      <title>Help with data lookup and flagging</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-data-lookup-and-flagging/m-p/349615#M81128</link>
      <description>&lt;P&gt;I am trying to merge/search two dataset where Searchterm from dataset 2 should be looked up in var1 for dataset 1. If any one of the search is indexed or found then it flags Y. However, it should remove the flag if any term from var1 matches anything in Excl1 to excl4 variable from dataset 2.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;You can see the desired output.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Can any one help me with this ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dataset 1&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;var1&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Client&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Bank of America&lt;/TD&gt;&lt;TD&gt;423&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Wells Fargo&lt;/TD&gt;&lt;TD&gt;232&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Chase&lt;/TD&gt;&lt;TD&gt;34&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;American Bank&lt;/TD&gt;&lt;TD&gt;24&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Bank of Japan&lt;/TD&gt;&lt;TD&gt;3453&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;European Bank&lt;/TD&gt;&lt;TD&gt;23&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Bank of London&lt;/TD&gt;&lt;TD&gt;623&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Waco Bank&lt;/TD&gt;&lt;TD&gt;553&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Brazilian Bank&lt;/TD&gt;&lt;TD&gt;403.6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;West California Bank&lt;/TD&gt;&lt;TD&gt;226.4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Citigroup Japan Bank&lt;/TD&gt;&lt;TD&gt;49.2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;PNC Bank&lt;/TD&gt;&lt;TD&gt;128&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Charles Schwab Corporation&lt;/TD&gt;&lt;TD&gt;305.2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Bank of New York Mellon&lt;/TD&gt;&lt;TD&gt;482.4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Capital One Bank&lt;/TD&gt;&lt;TD&gt;659.6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;BB&amp;amp;T Bank&lt;/TD&gt;&lt;TD&gt;836.8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;State Street Corporation Bank&lt;/TD&gt;&lt;TD&gt;1014&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Discover Financial Bank&lt;/TD&gt;&lt;TD&gt;1191.2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;SunTrust Bank&lt;/TD&gt;&lt;TD&gt;1368.4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;M&amp;amp;T Bank&lt;/TD&gt;&lt;TD&gt;1545.6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Fifth Third Bank&lt;/TD&gt;&lt;TD&gt;1722.8&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dataset2&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;SearchTerm&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;broad&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;excl1&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;excl2&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;excl3&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;excl4&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Bank&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;TD&gt;Japan&lt;/TD&gt;&lt;TD&gt;London&lt;/TD&gt;&lt;TD&gt;Brazilian&lt;/TD&gt;&lt;TD&gt;European&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;America&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Wells&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Chase&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Waco&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Desired Output:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;var1&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Client&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Flagged&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Bank of America&lt;/TD&gt;&lt;TD&gt;423&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Wells Fargo&lt;/TD&gt;&lt;TD&gt;232&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Chase&lt;/TD&gt;&lt;TD&gt;34&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;American Bank&lt;/TD&gt;&lt;TD&gt;24&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Bank of Japan&lt;/TD&gt;&lt;TD&gt;3453&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;European Bank&lt;/TD&gt;&lt;TD&gt;23&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Bank of London&lt;/TD&gt;&lt;TD&gt;623&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Waco Bank&lt;/TD&gt;&lt;TD&gt;553&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Brazilian Bank&lt;/TD&gt;&lt;TD&gt;403.6&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;West California Bank&lt;/TD&gt;&lt;TD&gt;226.4&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Citigroup Japan Bank&lt;/TD&gt;&lt;TD&gt;49.2&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;PNC Bank&lt;/TD&gt;&lt;TD&gt;128&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Charles Schwab Corporation&lt;/TD&gt;&lt;TD&gt;305.2&lt;/TD&gt;&lt;TD&gt;N&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Bank of New York Mellon&lt;/TD&gt;&lt;TD&gt;482.4&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Capital One Bank&lt;/TD&gt;&lt;TD&gt;659.6&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;BB&amp;amp;T Bank&lt;/TD&gt;&lt;TD&gt;836.8&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;State Street Corporation Bank&lt;/TD&gt;&lt;TD&gt;1014&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Discover Financial Bank&lt;/TD&gt;&lt;TD&gt;1191.2&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;SunTrust Bank&lt;/TD&gt;&lt;TD&gt;1368.4&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;M&amp;amp;T Bank&lt;/TD&gt;&lt;TD&gt;1545.6&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Fifth Third Bank&lt;/TD&gt;&lt;TD&gt;1722.8&lt;/TD&gt;&lt;TD&gt;Y&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Wed, 12 Apr 2017 21:16:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-data-lookup-and-flagging/m-p/349615#M81128</guid>
      <dc:creator>katamul</dc:creator>
      <dc:date>2017-04-12T21:16:47Z</dc:date>
    </item>
    <item>
      <title>Re: Help with data lookup and flagging</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-data-lookup-and-flagging/m-p/349647#M81146</link>
      <description>&lt;P&gt;We could get the flag derived without the merge, but by simple search. For the same we need to have the macro variables created for the words which when found the flag='y' and the other words which when found the flag='n'. Hence using the below data i created two macro variables like term and noterm.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now use the term to flag='y' and noterm to flag='n'&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have2;
infile cards missover;
input SearchTerm$	broad$	excl1$	excl2$	excl3$	excl4$;
cards;
Bank	Y	Japan	London	Brazilian	European
America	 	 	 	 	 
Wells	 	 	 	 	 
Chase	 	 	 	 	 
Waco
;


proc sql noprint;
select distinct searchterm into: term separated by '|' from have2;
select catx('|',excl1,excl2,excl3,excl4) into: noterm from have2 where broad='Y';
quit;

%put &amp;amp;term &amp;amp;noterm;

data have1;
input var1&amp;amp;$30.	Client;
if prxmatch("m/&amp;amp;term/i",var1) then flag='Y';
if prxmatch("m/&amp;amp;noterm/i",var1) then flag='N';
cards;
Bank of America			423
Wells Fargo		232
Chase			34
American Bank	24
Bank of Japan	3453
European Bank	23
Bank of London	623
Waco Bank			553
Brazilian Bank			403.6
West California Bank	226.4
Citigroup Japan Bank	49.2
PNC Bank	128
Charles Schwab Corporation	305.2
Bank of New York Mellon		482.4
Capital One Bank			659.6
BB&amp;amp;T Bank						836.8
State Street Corporation Bank	1014
Discover Financial Bank			1191.2
SunTrust Bank					1368.4
M&amp;amp;T Bank						1545.6
Fifth Third Bank				1722.8
;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 13 Apr 2017 01:44:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-data-lookup-and-flagging/m-p/349647#M81146</guid>
      <dc:creator>Jagadishkatam</dc:creator>
      <dc:date>2017-04-13T01:44:03Z</dc:date>
    </item>
    <item>
      <title>Re: Help with data lookup and flagging</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-data-lookup-and-flagging/m-p/349669#M81154</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/12151"&gt;@Jagadishkatam&lt;/a&gt;: I like your solution, but it doesn't match the last string in &amp;amp;noterm. and I have no idea why it doesn't!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've posted your code as a question on SAS-L to increase the chance of finding out why it doesn't work for European.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138911"&gt;@katamul&lt;/a&gt;: Why do you want to set a flag for&amp;nbsp;Charles Schwab Corporation? It doesn't meet any of your conditions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 13 Apr 2017 05:06:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-data-lookup-and-flagging/m-p/349669#M81154</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-04-13T05:06:54Z</dc:date>
    </item>
    <item>
      <title>Re: Help with data lookup and flagging</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-data-lookup-and-flagging/m-p/349747#M81202</link>
      <description>&lt;P&gt;Got the answer: In the final data step you have to use the macro trim function. i.e.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;if prxmatch("m/%trim(&amp;amp;term)/i",var1) then flag='Y';
if prxmatch("m/%trim(&amp;amp;noterm)/i",var1) then flag='N';
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;</description>
      <pubDate>Thu, 13 Apr 2017 13:01:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-data-lookup-and-flagging/m-p/349747#M81202</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-04-13T13:01:47Z</dc:date>
    </item>
    <item>
      <title>Re: Help with data lookup and flagging</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-data-lookup-and-flagging/m-p/349751#M81206</link>
      <description>&lt;P&gt;Better add '\b' &amp;nbsp;to specify word broad .&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;select cats('\b',searchterm,'\b') into : term separated by '|'&lt;/P&gt;</description>
      <pubDate>Thu, 13 Apr 2017 13:07:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-data-lookup-and-flagging/m-p/349751#M81206</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2017-04-13T13:07:55Z</dc:date>
    </item>
    <item>
      <title>Re: Help with data lookup and flagging</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-data-lookup-and-flagging/m-p/349759#M81211</link>
      <description>Thank you Art and Ksharp for the suggestions</description>
      <pubDate>Thu, 13 Apr 2017 13:31:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-data-lookup-and-flagging/m-p/349759#M81211</guid>
      <dc:creator>Jagadishkatam</dc:creator>
      <dc:date>2017-04-13T13:31:54Z</dc:date>
    </item>
    <item>
      <title>Re: Help with data lookup and flagging</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Help-with-data-lookup-and-flagging/m-p/349766#M81212</link>
      <description>&lt;P&gt;Also, I just learned something new. SQL has a trimmed option that is the default when using separated by. Thus, the SQL call should be:&lt;/P&gt;
&lt;PRE&gt;proc sql noprint;
  select distinct searchterm
    into :term separated by '|'
      from dataset2
  ;
  select catx('|',excl1,excl2,excl3,excl4)
    into: noterm trimmed
      from dataset2
        where broad='Y'
  ;
quit;

data want;
  set dataset1;
  if prxmatch("m/&amp;amp;term/i",var1) then flag='Y';
  if prxmatch("m/&amp;amp;noterm/i",var1) then flag='N';
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 13 Apr 2017 14:17:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Help-with-data-lookup-and-flagging/m-p/349766#M81212</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-04-13T14:17:27Z</dc:date>
    </item>
  </channel>
</rss>

