<?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 Proc SQL and similar SAS Code in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47657#M12828</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As said friedEgg&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data dataset1;&lt;BR /&gt;input var1 var2 var3 var4 var5;&lt;BR /&gt;datalines;&lt;BR /&gt;1 3 65 63 77&lt;BR /&gt;1 2 65 63 66&lt;BR /&gt;2 2&amp;nbsp; 2&amp;nbsp; 2&amp;nbsp; 2&lt;BR /&gt;2 2&amp;nbsp; 2&amp;nbsp; 2&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;;&lt;BR /&gt;proc sort data=dataset1;&lt;BR /&gt;by var1 var2 var3 var4 var5;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data dataset2(keep= var1 var2 var3 var4 var5 count);&lt;BR /&gt;set dataset1;&lt;BR /&gt; by var1 var2 var3 var4 var5;&lt;BR /&gt; if first.var5 then count=0;&lt;BR /&gt; count+1;&lt;BR /&gt; if last.var5 then output;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 28 Mar 2012 19:07:18 GMT</pubDate>
    <dc:creator>sassharp</dc:creator>
    <dc:date>2012-03-28T19:07:18Z</dc:date>
    <item>
      <title>Proc SQL and similar SAS Code</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47652#M12823</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm trying to write the equivalent SAS code for:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;create table dataset2 as select var1, var2, var3, var4, var5, count(*)&lt;/P&gt;&lt;P&gt;from dataset1&lt;/P&gt;&lt;P&gt;group by var1, var2, var3, var4, var5;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Mar 2012 18:43:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47652#M12823</guid>
      <dc:creator>AshleyM</dc:creator>
      <dc:date>2012-03-28T18:43:36Z</dc:date>
    </item>
    <item>
      <title>Proc SQL and similar SAS Code</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47653#M12824</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;proc sort data=dataset1; by var1 var2 var3 var4 var5; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data dataset2;&lt;/P&gt;&lt;P&gt; set dataset1;&lt;/P&gt;&lt;P&gt;by var1 var2 var3 var4 var5;&lt;/P&gt;&lt;P&gt;if first.var5 then count=0;&lt;/P&gt;&lt;P&gt;count+1;&lt;/P&gt;&lt;P&gt;if last.var5 then output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Mar 2012 18:51:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47653#M12824</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2012-03-28T18:51:26Z</dc:date>
    </item>
    <item>
      <title>Proc SQL and similar SAS Code</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47654#M12825</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data dataset1;&lt;BR /&gt;input var1 var2 var3 var4 var5;&lt;BR /&gt;datalines;&lt;BR /&gt;1 3 65 63 77&lt;BR /&gt;1 2 65 63 66&lt;/P&gt;&lt;P&gt;;&lt;BR /&gt;proc sort data=dataset1;&lt;BR /&gt;by var1 var2 var3 var4 var5;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;data dataset2(keep= var1 var2 var3 var4 var5 count);&lt;BR /&gt;set dataset1;&lt;BR /&gt; by var1 var2 var3 var4 var5;&lt;BR /&gt; count+1;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Mar 2012 18:58:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47654#M12825</guid>
      <dc:creator>sassharp</dc:creator>
      <dc:date>2012-03-28T18:58:28Z</dc:date>
    </item>
    <item>
      <title>Proc SQL and similar SAS Code</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47655#M12826</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;sassharp,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your code will count across the entire file rather than across by group as the SQL will.&amp;nbsp; You are basically creating a sequence number for dataset1.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Mar 2012 19:01:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47655#M12826</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2012-03-28T19:01:07Z</dc:date>
    </item>
    <item>
      <title>Proc SQL and similar SAS Code</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47656#M12827</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Agreed Fried Egg.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Mar 2012 19:05:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47656#M12827</guid>
      <dc:creator>sassharp</dc:creator>
      <dc:date>2012-03-28T19:05:09Z</dc:date>
    </item>
    <item>
      <title>Proc SQL and similar SAS Code</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47657#M12828</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As said friedEgg&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data dataset1;&lt;BR /&gt;input var1 var2 var3 var4 var5;&lt;BR /&gt;datalines;&lt;BR /&gt;1 3 65 63 77&lt;BR /&gt;1 2 65 63 66&lt;BR /&gt;2 2&amp;nbsp; 2&amp;nbsp; 2&amp;nbsp; 2&lt;BR /&gt;2 2&amp;nbsp; 2&amp;nbsp; 2&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;;&lt;BR /&gt;proc sort data=dataset1;&lt;BR /&gt;by var1 var2 var3 var4 var5;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data dataset2(keep= var1 var2 var3 var4 var5 count);&lt;BR /&gt;set dataset1;&lt;BR /&gt; by var1 var2 var3 var4 var5;&lt;BR /&gt; if first.var5 then count=0;&lt;BR /&gt; count+1;&lt;BR /&gt; if last.var5 then output;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Mar 2012 19:07:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47657#M12828</guid>
      <dc:creator>sassharp</dc:creator>
      <dc:date>2012-03-28T19:07:18Z</dc:date>
    </item>
    <item>
      <title>Proc SQL and similar SAS Code</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47658#M12829</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data dataset1;&lt;BR /&gt;input var1 var2 var3 var4 var5;&lt;BR /&gt;datalines;&lt;BR /&gt;1 3 65 63 77&lt;BR /&gt;1 2 65 63 66&lt;BR /&gt;2 2&amp;nbsp; 2&amp;nbsp; 2&amp;nbsp; 2&lt;BR /&gt;2 2&amp;nbsp; 2&amp;nbsp; 2&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;;&lt;BR /&gt;proc sort data=dataset1;&lt;BR /&gt;by var1 var2 var3 var4 var5;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data dataset2(keep= var1 var2 var3 var4 var5 count);&lt;BR /&gt;set dataset1;&lt;BR /&gt; by var1 var2 var3 var4 var5;&lt;BR /&gt; if first.var5 then count=0;&lt;BR /&gt; count+1;&lt;BR /&gt; if last.var5 then output;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;/*or*/&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;proc sql;&lt;BR /&gt;create table dataset2 as &lt;BR /&gt;select var1,var2,var3,var4,var5,count(*)&lt;BR /&gt;from dataset1&lt;BR /&gt;group by var1,var2,var3,var4,var5;&lt;BR /&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Mar 2012 19:14:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47658#M12829</guid>
      <dc:creator>sassharp</dc:creator>
      <dc:date>2012-03-28T19:14:40Z</dc:date>
    </item>
    <item>
      <title>Proc SQL and similar SAS Code</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47659#M12830</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Another approach:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc freq data=dataset1;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; tables var1 * var2 * var3 * var4 * var5 / noprint out=dataset2 (drop=percent);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If there are a lot of combinations of the 5 variables, it is conceivable this would run out of memory.&amp;nbsp; But the tradeoff is that it works on unsorted data.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Mar 2012 19:23:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47659#M12830</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-03-28T19:23:28Z</dc:date>
    </item>
    <item>
      <title>Proc SQL and similar SAS Code</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47660#M12831</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Another alternative would be proc means, which is a multi-threading procedure which will make the operation faster for larger data:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc means data=dataset1 n nway noprint;&lt;/P&gt;&lt;P&gt; class var1-var5;&lt;/P&gt;&lt;P&gt; output out=dataset2(drop=_type_ rename=(_freq_=count));&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 Mar 2012 19:35:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47660#M12831</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2012-03-28T19:35:56Z</dc:date>
    </item>
    <item>
      <title>Re: Proc SQL and similar SAS Code</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47661#M12832</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Another approach, using Hash this time, I know it's silly, just try to show what Hash can do:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; data have;&lt;/P&gt;&lt;P&gt;input v1-v6;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;2 2&amp;nbsp; 2&amp;nbsp; 2&amp;nbsp; 2 4&lt;/P&gt;&lt;P&gt;2 2&amp;nbsp; 2&amp;nbsp; 2&amp;nbsp; 2 77&lt;/P&gt;&lt;P&gt;1 3 65 63 77 2&lt;/P&gt;&lt;P&gt;1 2 65 63 66 3&lt;/P&gt;&lt;P&gt;2 2 2 2 2 76&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want (drop=_rc);&lt;/P&gt;&lt;P&gt; length sum 8;&lt;/P&gt;&lt;P&gt; if _n_ = 1 then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; declare hash h(suminc: "sum", ordered: "a");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; declare hiter hi("h");&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; h.defineKey('v1', 'v2','v3', 'v4', 'v5');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; h.definedata('v1', 'v2','v3', 'v4', 'v5');&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; h.defineDone();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; sum = 1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; do while (not done);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set have end=done;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _rc = h.ref();&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt; _rc = hi.first();&lt;/P&gt;&lt;P&gt; do while(_rc = 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _rc = h.sum(sum: sum);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; _rc = hi.next();&lt;/P&gt;&lt;P&gt; end;&lt;/P&gt;&lt;P&gt; stop;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; proc print;run;&lt;/P&gt;&lt;P&gt;&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>Thu, 29 Mar 2012 13:58:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47661#M12832</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-03-29T13:58:10Z</dc:date>
    </item>
    <item>
      <title>Proc SQL and similar SAS Code</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47662#M12833</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;DOW seems pretty handy for this case:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data dataset1;&lt;/P&gt;&lt;P&gt;input var1 var2 var3 var4 var5;&lt;/P&gt;&lt;P&gt;datalines;&lt;/P&gt;&lt;P&gt;1 3 65 63 77&lt;/P&gt;&lt;P&gt;1 2 65 63 66&lt;/P&gt;&lt;P&gt;2 2&amp;nbsp; 2&amp;nbsp; 2&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;2 2&amp;nbsp; 2&amp;nbsp; 2&amp;nbsp; 2&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;proc sort data=dataset1;&lt;/P&gt;&lt;P&gt;by var1 var2 var3 var4 var5;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do sum=1 by 1 until (last.var5);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set dataset1;&lt;/P&gt;&lt;P&gt; by var1-var5;&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&amp;nbsp; proc print;run;&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>Thu, 29 Mar 2012 14:25:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Proc-SQL-and-similar-SAS-Code/m-p/47662#M12833</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-03-29T14:25:39Z</dc:date>
    </item>
  </channel>
</rss>

