<?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 Creating Hash tables in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Creating-Hash-tables/m-p/13144#M1837</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;By default, Hash Table is NODUPKEY, it keeps the first one of duplicated key.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 14 Mar 2012 04:23:19 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2012-03-14T04:23:19Z</dc:date>
    <item>
      <title>Creating Hash tables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-Hash-tables/m-p/13139#M1832</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I am trying to create a hash table for the below criteria. Please help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Table_A &lt;BR /&gt;ID Name Fee_Amt&lt;BR /&gt;1 a 0&lt;BR /&gt;2 b 200&lt;BR /&gt;3 c 0&lt;BR /&gt;4 d 400&lt;BR /&gt;5 e 500&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Table_B&lt;BR /&gt;ID City&lt;BR /&gt;1 Test1&lt;BR /&gt;2 Test2&lt;BR /&gt;3 Test3&lt;BR /&gt;4 Test4&lt;BR /&gt;5 Test5&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Result&lt;BR /&gt;ID Name City&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fee_Amt&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fee&lt;BR /&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Test1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&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;&amp;nbsp; No&lt;BR /&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Test2&amp;nbsp;&amp;nbsp; 200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Yes&lt;BR /&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Test3&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&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;&amp;nbsp; No&lt;BR /&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Test4&amp;nbsp;&amp;nbsp; 400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Yes&lt;BR /&gt;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Test5&amp;nbsp;&amp;nbsp; 500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Yes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Usually, in PROC SQL the below code works good but it takes hours to run if the observations are in millions. I happened to know that Hash tables are effective in this case. If some can help me creating a hash table for left join, it would be a great help. Thank you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Proc SQL Code:&lt;BR /&gt;PROC SQL;&lt;BR /&gt;CREATE TABLE RESULT AS&lt;BR /&gt;SELECT A.*, B.CITY, CASE WHEN (A.ID = B.ID AND A.FEE_AMT &amp;gt; 0) THEN 'YES' ELSE 'NO' END AS FEE&lt;BR /&gt;FROM TABLE_A LEFT JOIN TABLE_B&lt;BR /&gt;ON A.ID = B.ID;&lt;BR /&gt;QUIT;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Feb 2012 15:24:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-Hash-tables/m-p/13139#M1832</guid>
      <dc:creator>Hima</dc:creator>
      <dc:date>2012-02-24T15:24:29Z</dc:date>
    </item>
    <item>
      <title>Creating Hash tables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-Hash-tables/m-p/13140#M1833</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Hima,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am new to hash as well, so just to start discussion. Assume that your table_b is smaller that you want to put it into hash(), also you want a merge(inner join), not a left join showing in your SQL code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data Table_A;&lt;/P&gt;&lt;P&gt;input ID Name $ Fee_Amt;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 a 0&lt;/P&gt;&lt;P&gt;2 b 200&lt;/P&gt;&lt;P&gt;3 c 0&lt;/P&gt;&lt;P&gt;4 d 400&lt;/P&gt;&lt;P&gt;5 e 500&lt;/P&gt;&lt;P&gt;6 t 100&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data Table_B;&lt;/P&gt;&lt;P&gt;input ID City $;&lt;/P&gt;&lt;P&gt;cards;&lt;/P&gt;&lt;P&gt;1 Test1&lt;/P&gt;&lt;P&gt;2 Test2&lt;/P&gt;&lt;P&gt;3 Test3&lt;/P&gt;&lt;P&gt;4 Test4&lt;/P&gt;&lt;P&gt;5 Test5&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if 0 then set table_b;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _n_=1 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp; declare hash hh(dataset: 'table_b');&lt;/P&gt;&lt;P&gt;&amp;nbsp; hh.definekey ('id');&lt;/P&gt;&lt;P&gt;&amp;nbsp; hh.definedata('city');&lt;/P&gt;&lt;P&gt;&amp;nbsp; hh.definedone();&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set table_a;&lt;/P&gt;&lt;P&gt;&amp;nbsp; fee=ifc(fee_amt=0,'NO','YES');&lt;/P&gt;&lt;P&gt;&amp;nbsp; _n_=hh.find();&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _n_=0 then output;&lt;/P&gt;&lt;P&gt;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; proc print;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Feb 2012 15:52:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-Hash-tables/m-p/13140#M1833</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-02-24T15:52:47Z</dc:date>
    </item>
    <item>
      <title>Creating Hash tables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-Hash-tables/m-p/13141#M1834</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Thank you. This is exactly what I need. Great Expertise!!!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Feb 2012 16:03:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-Hash-tables/m-p/13141#M1834</guid>
      <dc:creator>Hima</dc:creator>
      <dc:date>2012-02-24T16:03:00Z</dc:date>
    </item>
    <item>
      <title>Re: Creating Hash tables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-Hash-tables/m-p/13142#M1835</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi ... you can also do some reading (my experience with these is that I think that this order works best) ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Getting Started with the DATA Step Hash Object&lt;/P&gt;&lt;P&gt;&lt;A href="http://support.sas.com/rnd/base/datastep/dot/hash-getting-started.pdf"&gt;http://support.sas.com/rnd/base/datastep/dot/hash-getting-started.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Getting Started with the DATA Step Hash Iterator&lt;/P&gt;&lt;P&gt;&lt;A href="http://support.sas.com/rnd/base/datastep/dot/iterator-getting-started.pdf"&gt;http://support.sas.com/rnd/base/datastep/dot/iterator-getting-started.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How Do I Love Hash Tables? Let Me Count The Ways!&lt;/P&gt;&lt;P&gt;&lt;A href="http://www2.sas.com/proceedings/forum2008/029-2008.pdf"&gt;http://www2.sas.com/proceedings/forum2008/029-2008.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Better Hashing in SAS 9.2&lt;/P&gt;&lt;P&gt;&lt;A href="http://support.sas.com/resources/papers/sgf2008/hashing92.pdf"&gt;http://support.sas.com/resources/papers/sgf2008/hashing92.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hash Crash and Beyond&lt;/P&gt;&lt;P&gt;&lt;A class="active_link" href="http://www2.sas.com/proceedings/forum2008/037-2008.pdf"&gt;http://www2.sas.com/proceedings/forum2008/037-2008.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and this is nice to have around ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hash Object Tip Sheet&lt;/P&gt;&lt;P&gt;&lt;A href="http://support.sas.com/rnd/base/datastep/dot/hash-tip-sheet.pdf"&gt;http://support.sas.com/rnd/base/datastep/dot/hash-tip-sheet.pdf&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 24 Feb 2012 18:50:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-Hash-tables/m-p/13142#M1835</guid>
      <dc:creator>MikeZdeb</dc:creator>
      <dc:date>2012-02-24T18:50:00Z</dc:date>
    </item>
    <item>
      <title>Creating Hash tables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-Hash-tables/m-p/13143#M1836</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; can anybody give example and code for how to incorporate an option 'NODUPKEY' in hash sort as in proc sort with nodupkey?&lt;/P&gt;&lt;P&gt;thanks.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 13 Mar 2012 19:00:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-Hash-tables/m-p/13143#M1836</guid>
      <dc:creator>sassharp</dc:creator>
      <dc:date>2012-03-13T19:00:04Z</dc:date>
    </item>
    <item>
      <title>Creating Hash tables</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Creating-Hash-tables/m-p/13144#M1837</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;By default, Hash Table is NODUPKEY, it keeps the first one of duplicated key.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 14 Mar 2012 04:23:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Creating-Hash-tables/m-p/13144#M1837</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-03-14T04:23:19Z</dc:date>
    </item>
  </channel>
</rss>

