<?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 How to stop a macro if there is a empty data set? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-stop-a-macro-if-there-is-a-empty-data-set/m-p/474256#M285904</link>
    <description>&lt;P&gt;Hello I have a macro loop and has two steps, and the second step is transpose, but if the 1st step gets the empty data set (0 observation) then the 2nd step will have error. How can I have a step to test if the data set is empty, if its will jump to next loop. please see example below&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%do m=1 %to 12;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %do n=1 %to 6;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;BR /&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; /*1ST STEP*/&amp;nbsp; &amp;nbsp; &amp;nbsp; %Collect-DATA-SET-Step;&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; /*2ND STEP*/&amp;nbsp; &amp;nbsp; &amp;nbsp; %TRANSPOSE-Step;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %end;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;BR /&gt;%end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I would like is to have a test step after the 1st step, if the data set is empty, them move to next round loop.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any thoughts are appreciated. Thank you.&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 28 Jun 2018 21:07:31 GMT</pubDate>
    <dc:creator>RoWa</dc:creator>
    <dc:date>2018-06-28T21:07:31Z</dc:date>
    <item>
      <title>How to stop a macro if there is a empty data set?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-stop-a-macro-if-there-is-a-empty-data-set/m-p/474256#M285904</link>
      <description>&lt;P&gt;Hello I have a macro loop and has two steps, and the second step is transpose, but if the 1st step gets the empty data set (0 observation) then the 2nd step will have error. How can I have a step to test if the data set is empty, if its will jump to next loop. please see example below&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%do m=1 %to 12;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %do n=1 %to 6;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;BR /&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; /*1ST STEP*/&amp;nbsp; &amp;nbsp; &amp;nbsp; %Collect-DATA-SET-Step;&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; /*2ND STEP*/&amp;nbsp; &amp;nbsp; &amp;nbsp; %TRANSPOSE-Step;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %end;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;BR /&gt;%end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I would like is to have a test step after the 1st step, if the data set is empty, them move to next round loop.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any thoughts are appreciated. Thank you.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 28 Jun 2018 21:07:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-stop-a-macro-if-there-is-a-empty-data-set/m-p/474256#M285904</guid>
      <dc:creator>RoWa</dc:creator>
      <dc:date>2018-06-28T21:07:31Z</dc:date>
    </item>
    <item>
      <title>Re: How to stop a macro if there is a empty data set?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-stop-a-macro-if-there-is-a-empty-data-set/m-p/474262#M285905</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql noprint;
select nobs into :nobs from dictionary.tables
where libname = "XXXXX" and memname = "YYYYY";
quit;

%if &amp;amp;nobs ne 0 %then %do;

/* transpose step */

%end;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 28 Jun 2018 21:14:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-stop-a-macro-if-there-is-a-empty-data-set/m-p/474262#M285905</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-06-28T21:14:35Z</dc:date>
    </item>
    <item>
      <title>Re: How to stop a macro if there is a empty data set?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-stop-a-macro-if-there-is-a-empty-data-set/m-p/474489#M285906</link>
      <description>&lt;P&gt;Thank you. I am little confused with "where libname = "xxxxxx" and memname = "YYYYY"&amp;nbsp; ". What am I supposed to fillup for the xxxxxx and YYYYY?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have posted a sample of my program, and can you please help me to correct it?&amp;nbsp; I have struggled for few hours on this....:(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%do i= 1 %to 2;&lt;BR /&gt;%let PRIN1 = %scan(%bquote(&amp;amp;PRINLST), &amp;amp;i, ' ');&lt;BR /&gt;%put &amp;amp;prin1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %do j = 1 %to 2;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %let POS1 = %scan(%bquote(&amp;amp;POS),&amp;amp;j, ' ');&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %put &amp;amp;POS1;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %do m=1 %to 2;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %let CLSYRMTH1 = %scan(%bquote(&amp;amp;CLSYRMTH),&amp;amp;m, ' ');&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %put &amp;amp;CLSYRMTH1;&lt;/P&gt;&lt;P&gt;&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; %Basetable(&amp;amp;PRIN1, &amp;amp;POS1, &amp;amp;CLSYRMTH1); /*Gather base table*/&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; proc sql noprint;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; select nobs into :nobs&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; from WORK.T_&amp;amp;PRIN1._&amp;amp;POS1._&amp;amp;CLSYRMTH1&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; where libname = "WORK" and memname = "YYYYY"&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ;quit;&lt;/P&gt;&lt;P&gt;&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; %if &amp;amp;nobs 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; %TRANSPOSE(&amp;amp;PRIN1, &amp;amp;POS1, &amp;amp;CLSYRMTH1); /*Transpose step*/&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; %end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; %end;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; %end;&lt;BR /&gt;%end;&lt;/P&gt;</description>
      <pubDate>Fri, 29 Jun 2018 16:22:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-stop-a-macro-if-there-is-a-empty-data-set/m-p/474489#M285906</guid>
      <dc:creator>RoWa</dc:creator>
      <dc:date>2018-06-29T16:22:12Z</dc:date>
    </item>
    <item>
      <title>Re: How to stop a macro if there is a empty data set?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-stop-a-macro-if-there-is-a-empty-data-set/m-p/474494#M285907</link>
      <description>&lt;P&gt;memname is the dataset name (in uppercase) for which you want to get the observation count..&lt;/P&gt;</description>
      <pubDate>Fri, 29 Jun 2018 16:41:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-stop-a-macro-if-there-is-a-empty-data-set/m-p/474494#M285907</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-06-29T16:41:39Z</dc:date>
    </item>
    <item>
      <title>Re: How to stop a macro if there is a empty data set?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-stop-a-macro-if-there-is-a-empty-data-set/m-p/474508#M285908</link>
      <description>&lt;P&gt;I figured it out. Thank you.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 29 Jun 2018 17:23:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-stop-a-macro-if-there-is-a-empty-data-set/m-p/474508#M285908</guid>
      <dc:creator>RoWa</dc:creator>
      <dc:date>2018-06-29T17:23:23Z</dc:date>
    </item>
    <item>
      <title>Re: How to stop a macro if there is a empty data set?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-stop-a-macro-if-there-is-a-empty-data-set/m-p/788223#M285909</link>
      <description>&lt;P&gt;Below is an example using count(*) in PROC SQL:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%macro split(i, file);&lt;BR /&gt;%do i=1 %to &amp;amp;i;&lt;BR /&gt;proc sql noprint;&lt;BR /&gt;select count(*) into :obs_count&lt;BR /&gt;from &amp;amp;file._out&amp;amp;i;&lt;BR /&gt;quit;&lt;BR /&gt;%if &amp;amp;obs_count ne 0 and &amp;amp;file=res %then %do;&lt;BR /&gt;proc export data=&amp;amp;file._out&amp;amp;i label /* The label option is used to export the label names as variable names */&lt;BR /&gt;outfile="&amp;amp;SF\covid19&amp;amp;file.&amp;amp;i..csv"&lt;BR /&gt;dbms=csv replace;&lt;BR /&gt;run;&lt;BR /&gt;%end;&lt;BR /&gt;%else %if &amp;amp;obs_count ne 0 %then %do;&lt;BR /&gt;proc export data=&amp;amp;file._out&amp;amp;i&lt;BR /&gt;outfile="&amp;amp;SF\covid19&amp;amp;file.&amp;amp;i..csv"&lt;BR /&gt;dbms=csv replace;&lt;BR /&gt;run;&lt;BR /&gt;%end;&lt;/P&gt;&lt;P&gt;%end;&lt;BR /&gt;%mend split;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 04 Jan 2022 04:22:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-stop-a-macro-if-there-is-a-empty-data-set/m-p/788223#M285909</guid>
      <dc:creator>baldcypress</dc:creator>
      <dc:date>2022-01-04T04:22:54Z</dc:date>
    </item>
  </channel>
</rss>

