<?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: A better way to create subgroups? in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426665#M68375</link>
    <description>&lt;P&gt;I modified the codes below.&amp;nbsp; Some error messages were shown at the log.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; &lt;STRONG&gt;&lt;I&gt;generate_statements&lt;/I&gt;&lt;/STRONG&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; n=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;100&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%to&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;700&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%by&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;100&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt; if &amp;amp;n &amp;lt;= group &amp;lt; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%eval&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;(&amp;amp;n+&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;100&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;) then&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;do;&lt;/P&gt;
&lt;P&gt;output classgroup&amp;amp;n;&lt;/P&gt;
&lt;P&gt;if group=&amp;amp;n then output maingroup&amp;amp;n;&lt;/P&gt;
&lt;P&gt;else output subgroup&amp;amp;n;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; generate_statements;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/*call the macro in your datastep;*/&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; classgroup&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;n.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; maingroup&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;n.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; subgroup&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;n.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; test;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;I&gt;generate_statements&lt;/I&gt;&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;159 data classgroup&amp;amp;n. maingroup&amp;amp;n. subgroup&amp;amp;n.;&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;&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;&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;&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;&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;-&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;&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;&amp;nbsp;&amp;nbsp; 22&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; 22&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;&amp;nbsp; 22&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;&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;&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;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&lt;/P&gt;
&lt;P&gt;WARNING: Apparent symbolic reference N not resolved.&lt;/P&gt;
&lt;P&gt;WARNING: Apparent symbolic reference N not resolved.&lt;/P&gt;
&lt;P&gt;ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, (, /, ;,&lt;/P&gt;
&lt;P&gt;_DATA_, _LAST_, _NULL_.&lt;/P&gt;
&lt;P&gt;ERROR 200-322: The symbol is not recognized and will be ignored.&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And I changed to &amp;amp;&amp;amp;n., I still got an warning message.&lt;/P&gt;
&lt;P&gt;WARNING: Apparent symbolic reference N not resolved.&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;</description>
    <pubDate>Wed, 10 Jan 2018 21:15:53 GMT</pubDate>
    <dc:creator>ybz12003</dc:creator>
    <dc:date>2018-01-10T21:15:53Z</dc:date>
    <item>
      <title>A better way to create subgroups?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426628#M68366</link>
      <description>&lt;P&gt;Hello:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I have sample&amp;nbsp;codes list below.&amp;nbsp;&amp;nbsp;In&amp;nbsp;actual data, I have groups from 100 to 800. &amp;nbsp;&amp;nbsp;Is there a better way to create these subgroups?&amp;nbsp;&amp;nbsp; Thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; classgroup100 classgroup200 classgroup300;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; test;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;if&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;100&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt; &amp;lt;= group &amp;lt; &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;200&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; classgroup100;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;if&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;200&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt; &amp;lt;= group &amp;lt; &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;300&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; classgroup200;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;if&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;300&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt; &amp;lt;= group &amp;lt; &lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;400&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; classgroup300;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; maingroup100 subgroup100;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; classgroup100;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; group=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;100&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; maingroup100;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;else&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; subgroup100;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; maingroup200 subgroup200;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; classgroup200;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; group=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;200&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; maingroup200;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;else&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; subgroup200;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; maingroup300 subgroup300;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; classgroup300;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;if&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; group=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;300&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;then&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; maingroup300;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;else&lt;/FONT&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;output&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; subgroup300;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 20:41:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426628#M68366</guid>
      <dc:creator>ybz12003</dc:creator>
      <dc:date>2018-01-10T20:41:13Z</dc:date>
    </item>
    <item>
      <title>Re: A better way to create subgroups?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426634#M68368</link>
      <description>&lt;P&gt;I'll demo for one, use that as a model for the remaining:&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;data classgroup100 subgroup100 maingroup100;&lt;/P&gt;&lt;P&gt;set test;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;if 100 &amp;lt;= group &amp;lt; 200 then &lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;do;&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;output classgroup100;&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;if group=100 then output maingroup100;else output subgroup100;&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;&lt;STRONG&gt;end;&lt;/STRONG&gt;&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 20:34:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426634#M68368</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-01-10T20:34:29Z</dc:date>
    </item>
    <item>
      <title>Re: A better way to create subgroups?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426637#M68370</link>
      <description>&lt;P&gt;Most of the time, the "best" way is not to create them at all.&amp;nbsp; It's very easy to subset the observations as you need them, for example:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;where group=100;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;or:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;where (100 &amp;lt; group &amp;lt; 200);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is there something about your intended analysis that makes you want to keep three copies of the data?&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 20:40:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426637#M68370</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-01-10T20:40:58Z</dc:date>
    </item>
    <item>
      <title>Re: A better way to create subgroups?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426641#M68371</link>
      <description>&lt;P&gt;PROC FORMAT?&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 20:52:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426641#M68371</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-01-10T20:52:28Z</dc:date>
    </item>
    <item>
      <title>Re: A better way to create subgroups?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426642#M68372</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt; &lt;STRONG&gt;&lt;EM&gt;generate_statements&lt;/EM&gt;&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%do n=&lt;STRONG&gt;100&lt;/STRONG&gt; %to &lt;STRONG&gt;700&amp;nbsp;&lt;/STRONG&gt;%by &lt;STRONG&gt;100&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;if &amp;amp;n &amp;lt;= group &amp;lt; %eval(&amp;amp;n+&lt;STRONG&gt;100&lt;/STRONG&gt;) then&lt;/P&gt;&lt;P&gt;do;&lt;/P&gt;&lt;P&gt;output classgroup&amp;amp;n;&lt;/P&gt;&lt;P&gt;if group=&amp;amp;n then output maingroup&amp;amp;n;else output subgroup&amp;amp;n;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt; generate_statements;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*call the macro in your datastep;*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; w;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;generate_statements&lt;/EM&gt;&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you are completely unsatisfied with any of the above suggestions and you want super ultra hyper dynamic, we'll have to jump to Hash of hashes subject to memory availability. I'll hold that solution for later&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 21:01:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426642#M68372</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-01-10T21:01:41Z</dc:date>
    </item>
    <item>
      <title>Re: A better way to create subgroups?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426655#M68374</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;&amp;nbsp;lets not reinvent the wheel at every question.&amp;nbsp;&lt;BR /&gt;This topic is well covered in this post.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.sascommunity.org/wiki/Split_Data_into_Subsets" target="_blank"&gt;http://www.sascommunity.org/wiki/Split_Data_into_Subsets&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;or here:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://blogs.sas.com/content/sasdummy/2015/01/26/how-to-split-one-data-set-into-many/" target="_blank"&gt;https://blogs.sas.com/content/sasdummy/2015/01/26/how-to-split-one-data-set-into-many/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 21:09:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426655#M68374</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2018-01-10T21:09:16Z</dc:date>
    </item>
    <item>
      <title>Re: A better way to create subgroups?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426665#M68375</link>
      <description>&lt;P&gt;I modified the codes below.&amp;nbsp; Some error messages were shown at the log.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; &lt;STRONG&gt;&lt;I&gt;generate_statements&lt;/I&gt;&lt;/STRONG&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; n=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;100&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%to&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;700&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%by&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;100&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt; if &amp;amp;n &amp;lt;= group &amp;lt; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%eval&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;(&amp;amp;n+&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;100&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;) then&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;do;&lt;/P&gt;
&lt;P&gt;output classgroup&amp;amp;n;&lt;/P&gt;
&lt;P&gt;if group=&amp;amp;n then output maingroup&amp;amp;n;&lt;/P&gt;
&lt;P&gt;else output subgroup&amp;amp;n;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; generate_statements;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/*call the macro in your datastep;*/&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; classgroup&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;n.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; maingroup&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;n.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; subgroup&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;n.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; test;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;I&gt;generate_statements&lt;/I&gt;&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;159 data classgroup&amp;amp;n. maingroup&amp;amp;n. subgroup&amp;amp;n.;&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;&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;&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;&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;&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;-&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;&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;&amp;nbsp;&amp;nbsp; 22&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; 22&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;&amp;nbsp; 22&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;&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;&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;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; 200&lt;/P&gt;
&lt;P&gt;WARNING: Apparent symbolic reference N not resolved.&lt;/P&gt;
&lt;P&gt;WARNING: Apparent symbolic reference N not resolved.&lt;/P&gt;
&lt;P&gt;ERROR 22-322: Syntax error, expecting one of the following: a name, a quoted string, (, /, ;,&lt;/P&gt;
&lt;P&gt;_DATA_, _LAST_, _NULL_.&lt;/P&gt;
&lt;P&gt;ERROR 200-322: The symbol is not recognized and will be ignored.&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And I changed to &amp;amp;&amp;amp;n., I still got an warning message.&lt;/P&gt;
&lt;P&gt;WARNING: Apparent symbolic reference N not resolved.&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 21:15:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426665#M68375</guid>
      <dc:creator>ybz12003</dc:creator>
      <dc:date>2018-01-10T21:15:53Z</dc:date>
    </item>
    <item>
      <title>Re: A better way to create subgroups?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426668#M68376</link>
      <description>&lt;P&gt;Please refer to the links provided by&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13879"&gt;@Reeza&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This topic is well covered in this post.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sascommunity.org/wiki/Split_Data_into_Subsets" target="_blank" rel="nofollow noopener noreferrer"&gt;http://www.sascommunity.org/wiki/Split_Data_into_Subsets&lt;/A&gt;&lt;/P&gt;&lt;P&gt;or here:&lt;/P&gt;&lt;P&gt;&lt;A href="https://blogs.sas.com/content/sasdummy/2015/01/26/how-to-split-one-data-set-into-many/" target="_blank" rel="nofollow noopener noreferrer"&gt;https://blogs.sas.com/content/sasdummy/2015/01/26/how-to-split-one-data-set-into-many/&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 21:18:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426668#M68376</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-01-10T21:18:36Z</dc:date>
    </item>
    <item>
      <title>Re: A better way to create subgroups?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426678#M68377</link>
      <description>&lt;P&gt;I read the post, but I still couldn't find any solution to resolve the macro N.&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 21:26:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426678#M68377</guid>
      <dc:creator>ybz12003</dc:creator>
      <dc:date>2018-01-10T21:26:20Z</dc:date>
    </item>
    <item>
      <title>Re: A better way to create subgroups?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426679#M68378</link>
      <description>&lt;P&gt;declare n as&amp;nbsp; &amp;nbsp;global macro var, n will resolve&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%global n;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Also keep your data statement inside the macro&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;to resolve n in&amp;nbsp;&lt;FONT face="Courier New" size="2" color="#000080"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;classgroup&amp;amp;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2" color="#008080"&gt;n.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;maingroup&amp;amp;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2" color="#008080"&gt;n.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;subgroup&amp;amp;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2" color="#008080"&gt;n.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;; you need n to be a global macro var and not local. I am sorry that i didn't do that in my demo. I assumed you would grasp that.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 21:31:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426679#M68378</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-01-10T21:31:32Z</dc:date>
    </item>
    <item>
      <title>Re: A better way to create subgroups?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426688#M68379</link>
      <description>&lt;P&gt;Hi Novinosrin:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I added global N below.&amp;nbsp; Still didn't work.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; &lt;STRONG&gt;&lt;I&gt;generate_statements&lt;/I&gt;&lt;/STRONG&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%do&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; n=&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;100&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%to&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;700&lt;/FONT&gt;&lt;/STRONG&gt; &lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%by&lt;/FONT&gt; &lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;100&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt; if &amp;amp;n &amp;lt;= group &amp;lt; &lt;/FONT&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%eval&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;(&amp;amp;n+&lt;/FONT&gt;&lt;STRONG&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;100&lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="Courier New" size="2"&gt;) then&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;do;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt; output classgroup&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;n&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt; if group=&amp;amp;n then output maingroup&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;n&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="Courier New" size="2"&gt; else output subgroup&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;n.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%end&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; generate_statements;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/*call the macro in your datastep;*/&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;%global&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; n; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;data&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; classgroup&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;n.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; maingroup&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;n.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; subgroup&amp;amp;&lt;/FONT&gt;&lt;FONT color="#008080" face="Courier New" size="2"&gt;n.&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#0000ff" face="Courier New" size="2"&gt;set&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt; test;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;%&lt;STRONG&gt;&lt;I&gt;generate_statements&lt;/I&gt;&lt;/STRONG&gt;;&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color="#000080" face="Courier New" size="2"&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;&lt;/FONT&gt;&lt;FONT face="Courier New" size="2"&gt;;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;MLOGIC(GENERATE_STATEMENTS): %DO loop index variable N is now 700; loop will iterate again.&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable N resolves to 700&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable N resolves to 700&lt;/P&gt;
&lt;P&gt;MPRINT(GENERATE_STATEMENTS): if 700 &amp;lt;= group &amp;lt; 800 then do;&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable N resolves to 700&lt;/P&gt;
&lt;P&gt;MPRINT(GENERATE_STATEMENTS): output classgroup700;&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable N resolves to 700&lt;/P&gt;
&lt;P&gt;NOTE: Line generated by the macro variable "N".&lt;/P&gt;
&lt;P&gt;1 classgroup700&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; -------------&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; 455&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable N resolves to 700&lt;/P&gt;
&lt;P&gt;NOTE: Line generated by the macro variable "N".&lt;/P&gt;
&lt;P&gt;1 maingroup700&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; ------------&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; 455&lt;/P&gt;
&lt;P&gt;MPRINT(GENERATE_STATEMENTS): if group=700 then output maingroup700;&lt;/P&gt;
&lt;P&gt;SYMBOLGEN: Macro variable N resolves to 700&lt;/P&gt;
&lt;P&gt;NOTE: Line generated by the macro variable "N".&lt;/P&gt;
&lt;P&gt;1 subgroup700&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; -----------&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 455&lt;/P&gt;
&lt;P&gt;MPRINT(GENERATE_STATEMENTS): else output subgroup700;&lt;/P&gt;
&lt;P&gt;MPRINT(GENERATE_STATEMENTS): end;&lt;/P&gt;
&lt;P&gt;MLOGIC(GENERATE_STATEMENTS): %DO loop index variable N is now 800; loop will not iterate again.&lt;/P&gt;
&lt;P&gt;MLOGIC(GENERATE_STATEMENTS): Ending execution.&lt;/P&gt;
&lt;P&gt;ERROR 455-185: Data set was not specified on the DATA statement.&lt;/P&gt;
&lt;P&gt;&lt;LI-WRAPPER&gt;&lt;/LI-WRAPPER&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 21:44:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426688#M68379</guid>
      <dc:creator>ybz12003</dc:creator>
      <dc:date>2018-01-10T21:44:32Z</dc:date>
    </item>
    <item>
      <title>Re: A better way to create subgroups?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426712#M68380</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/67134"&gt;@ybz12003&lt;/a&gt;&amp;nbsp;Kindly accept my apologies for casual negligence on my part.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;See if this helps and let me know. I have made it two macros for easy understanding&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt; &lt;STRONG&gt;&lt;EM&gt;data_statement&lt;/EM&gt;&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%global&lt;/STRONG&gt; macrovar;&lt;/P&gt;&lt;P&gt;%do n=&lt;STRONG&gt;100&lt;/STRONG&gt; %to &lt;STRONG&gt;700&lt;/STRONG&gt; %by &lt;STRONG&gt;100&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;%if %length(&amp;amp;macrovar)=&lt;STRONG&gt;0&lt;/STRONG&gt; %then %let macrovar=%sysfunc(catx( %str( ) , classgroup&amp;amp;n.,&amp;nbsp; maingroup&amp;amp;n. subgroup&amp;amp;n.));&lt;/P&gt;&lt;P&gt;%else %let macrovar=%sysfunc(catx( %str( ) ,&amp;amp;macrovar. classgroup&amp;amp;n.,&amp;nbsp; maingroup&amp;amp;n. subgroup&amp;amp;n.));&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%put &amp;amp;macrovar;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt; data_statement;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;data_statement&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%macro&lt;/STRONG&gt; &lt;STRONG&gt;&lt;EM&gt;generate_if_statements&lt;/EM&gt;&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%do n=&lt;STRONG&gt;100&lt;/STRONG&gt; %to &lt;STRONG&gt;700&lt;/STRONG&gt; %by &lt;STRONG&gt;100&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;if &amp;amp;n &amp;lt;= group &amp;lt; %eval(&amp;amp;n+&lt;STRONG&gt;100&lt;/STRONG&gt;) then&lt;/P&gt;&lt;P&gt;do;&lt;/P&gt;&lt;P&gt;output classgroup&amp;amp;n;&lt;/P&gt;&lt;P&gt;if group=&amp;amp;n then output maingroup&amp;amp;n;else output subgroup&amp;amp;n;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;%mend&lt;/STRONG&gt; generate_statements;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*your final*/&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; &amp;amp;macrovar;&lt;/P&gt;&lt;P&gt;set have;&lt;/P&gt;&lt;P&gt;%&lt;STRONG&gt;&lt;EM&gt;generate_if_statements&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Jan 2018 22:26:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426712#M68380</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2018-01-10T22:26:40Z</dc:date>
    </item>
    <item>
      <title>Re: A better way to create subgroups?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426871#M68389</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test;
 call streaminit(12345678);
 do i=1 to 10000;
  group=100+ceil(800*rand('uniform'));  output;
 end;
 drop i;
run;




data test;
 set test;
 id=int(group/100)  ;
run;
proc sort data=test;
by id group;
run;
data _null_;
 if _n_=1 then do;
  if 0 then set test;
  declare hash h(multidata:'y');
  h.definekey('id');
  h.definedata('group');
  h.definedone();
 end;

do until(last.id);
 set test;
 by id;
 h.add();
end;
h.output(dataset:cats('classgroup_',id*100));
h.clear();
run;

data _null_;
 set sashelp.vmember(where=(libname='WORK' and upcase(memname) like 'CLASSGROUP%')) end=last;
 temp=scan(memname,-1,'_');
 call execute(catt('data maingroup_',temp ,' subgroup_',temp,';set classgroup_',temp,'; '));
 call execute(catt('if group=',temp,' then output maingroup_',temp,';else output subgroup_',temp,';'));
 call execute('run;'); 
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 11 Jan 2018 14:01:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426871#M68389</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2018-01-11T14:01:57Z</dc:date>
    </item>
    <item>
      <title>Re: A better way to create subgroups?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426892#M68390</link>
      <description>&lt;P&gt;A million thank you for everyone's expert suggestions.&amp;nbsp;&amp;nbsp; I am overwhelming with tons of macro codes!&amp;nbsp; It takes me a long time to digest them.&amp;nbsp; Although some are still NOT understanding,&amp;nbsp; Noviosrin's codes worked.&amp;nbsp; LOL!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 11 Jan 2018 15:24:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426892#M68390</guid>
      <dc:creator>ybz12003</dc:creator>
      <dc:date>2018-01-11T15:24:04Z</dc:date>
    </item>
    <item>
      <title>Re: A better way to create subgroups?</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426894#M68391</link>
      <description>&lt;P&gt;Thanks for your great suggestion, Ksharp.&amp;nbsp;&amp;nbsp;&amp;nbsp; Unfortunately,&amp;nbsp; the codes didn't work.&amp;nbsp;&amp;nbsp; Still, I am appreciated your effect to&amp;nbsp;help.&lt;/P&gt;</description>
      <pubDate>Thu, 11 Jan 2018 15:29:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/A-better-way-to-create-subgroups/m-p/426894#M68391</guid>
      <dc:creator>ybz12003</dc:creator>
      <dc:date>2018-01-11T15:29:11Z</dc:date>
    </item>
  </channel>
</rss>

