<?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: Give one number for matching Records in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Give-one-number-for-matching-Records/m-p/101031#M21160</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Art, when you put "array" and "hash" in the same sentence, that reminds me that "hash" used to be called "associative array".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 17 Dec 2012 21:26:58 GMT</pubDate>
    <dc:creator>Haikuo</dc:creator>
    <dc:date>2012-12-17T21:26:58Z</dc:date>
    <item>
      <title>Give one number for matching Records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Give-one-number-for-matching-Records/m-p/101027#M21156</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;i want to get one number for identical records and i want to get for the incremenatal runs alos&lt;/P&gt;&lt;P&gt;i am having firstdataset&lt;/P&gt;&lt;P&gt;firstdataset:&lt;BR /&gt;name age&lt;BR /&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;BR /&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;BR /&gt;c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&lt;BR /&gt;d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&lt;BR /&gt;e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;output:&lt;/P&gt;&lt;P&gt;name age&amp;nbsp; cluster_no&lt;BR /&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp; 1&lt;BR /&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp; 1 &lt;BR /&gt;c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp; 2&lt;BR /&gt;d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp; 2&lt;BR /&gt;e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp; 3&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;For incremental data&lt;BR /&gt;----------------------&lt;BR /&gt;In this it should take the max of cluster_no+1 and should do the same if any of the records match with the existing records it should&lt;BR /&gt;give the same cluster_no and the incremental data should append to the exsting data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;eample data for incrdataset&lt;/P&gt;&lt;P&gt;name age&lt;BR /&gt;e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13&lt;BR /&gt;f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&lt;BR /&gt;g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&lt;BR /&gt;h&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Final output of both&lt;BR /&gt;name age&amp;nbsp; cluster_no&lt;BR /&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp; 1&lt;BR /&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp; 1 &lt;BR /&gt;c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp; 2&lt;BR /&gt;d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp; 2&lt;BR /&gt;e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp; 3&lt;BR /&gt;e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13&amp;nbsp; 4(This should start with the max(cluster_no+1)&lt;BR /&gt;f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp; 3(As is was alredy assined in the first dataset)&lt;BR /&gt;g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&amp;nbsp; 5&lt;BR /&gt;h&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&amp;nbsp; 5&lt;/P&gt;&lt;P&gt;please help me in this&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 15 Dec 2012 08:48:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Give-one-number-for-matching-Records/m-p/101027#M21156</guid>
      <dc:creator>My_SAS</dc:creator>
      <dc:date>2012-12-15T08:48:28Z</dc:date>
    </item>
    <item>
      <title>Re: Give one number for matching Records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Give-one-number-for-matching-Records/m-p/101028#M21157</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could do it with either an array or a hash object.&amp;nbsp; Here is one way to do it with an array:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have (drop=clusters: counter);&lt;/P&gt;&lt;P&gt;&amp;nbsp; input name $ age;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array clusters(150);&lt;/P&gt;&lt;P&gt;&amp;nbsp; retain clusters:;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if missing(clusters(age)) then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; counter+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; clusters(age)=counter;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cluster_num=counter;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; else cluster_num=clusters(age);&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;/P&gt;&lt;P&gt;b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;/P&gt;&lt;P&gt;c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&lt;/P&gt;&lt;P&gt;d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&lt;/P&gt;&lt;P&gt;e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data incrdataset;&lt;/P&gt;&lt;P&gt;&amp;nbsp; input name $ age;&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13&lt;/P&gt;&lt;P&gt;f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&lt;/P&gt;&lt;P&gt;g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&lt;/P&gt;&lt;P&gt;h&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want (drop=clusters: counter x);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have indsname=fname incrdataset;&lt;/P&gt;&lt;P&gt;&amp;nbsp; array clusters(150);&lt;/P&gt;&lt;P&gt;&amp;nbsp; retain clusters:;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if fname ne lag(fname) then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; x+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if x gt 1 then counter=max(of clusters(*));&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if x eq 1 then clusters(age)=cluster_num;&lt;/P&gt;&lt;P&gt;&amp;nbsp; else do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if missing(clusters(age)) then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; counter+1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; clusters(age)=counter;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cluster_num=counter;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else cluster_num=clusters(age);&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 15 Dec 2012 17:10:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Give-one-number-for-matching-Records/m-p/101028#M21157</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2012-12-15T17:10:46Z</dc:date>
    </item>
    <item>
      <title>Re: Give one number for matching Records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Give-one-number-for-matching-Records/m-p/101029#M21158</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here's one hash solution:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want(keep=name age cluster_no);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _N_=1 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(1=2)then set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cluster_no=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; declare hash test();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rc=test.defineKey("age");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rc=test.defineData("cluster_no");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; test.defineDone();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do until(done);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have end=done;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rcf=test.find();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if rcf ne 0 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rca=test.add();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cluster_no=test.num_items;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rcr=test.replace();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call missing(cluster_no);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rcf=test.find();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; stop;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 16 Dec 2012 07:03:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Give-one-number-for-matching-Records/m-p/101029#M21158</guid>
      <dc:creator>joehinson</dc:creator>
      <dc:date>2012-12-16T07:03:35Z</dc:date>
    </item>
    <item>
      <title>Re: Give one number for matching Records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Give-one-number-for-matching-Records/m-p/101030#M21159</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It is easy For Hash Table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;data have ;
input name $ age ;
cards;
a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp; 
b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp; 
c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp; 
d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&amp;nbsp; 
e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp; 
e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13&amp;nbsp; 
f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 12&amp;nbsp; 
g&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&amp;nbsp; 
h&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 14&amp;nbsp; 
;
run;
data want;
 if _n_ eq 1 then do;
&amp;nbsp; declare hash ha();
&amp;nbsp;&amp;nbsp; ha.definekey('age');
&amp;nbsp;&amp;nbsp; ha.definedata('no');
&amp;nbsp;&amp;nbsp; ha.definedone();
 end;
set have;
if ha.find() ne 0 then do;n+1;no=n;ha.add();end;
drop n;
run;


&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Dec 2012 04:32:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Give-one-number-for-matching-Records/m-p/101030#M21159</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-12-17T04:32:55Z</dc:date>
    </item>
    <item>
      <title>Re: Give one number for matching Records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Give-one-number-for-matching-Records/m-p/101031#M21160</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Art, when you put "array" and "hash" in the same sentence, that reminds me that "hash" used to be called "associative array".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Haikuo &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 17 Dec 2012 21:26:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Give-one-number-for-matching-Records/m-p/101031#M21160</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-12-17T21:26:58Z</dc:date>
    </item>
    <item>
      <title>Re: Give one number for matching Records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Give-one-number-for-matching-Records/m-p/101032#M21161</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Nice, Ksharp! Learn some!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Dec 2012 04:27:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Give-one-number-for-matching-Records/m-p/101032#M21161</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-12-18T04:27:14Z</dc:date>
    </item>
    <item>
      <title>Re: Give one number for matching Records</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Give-one-number-for-matching-Records/m-p/101033#M21162</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thqs Art and ksharp for your reply it worked&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 18 Dec 2012 05:32:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Give-one-number-for-matching-Records/m-p/101033#M21162</guid>
      <dc:creator>My_SAS</dc:creator>
      <dc:date>2012-12-18T05:32:45Z</dc:date>
    </item>
  </channel>
</rss>

