<?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: Execute proc export with an if statement in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173491#M44693</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The open/close is probably a better way to get the count.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, if you're comparing variables and looking for identical values you may want to look into proc compare.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 26 May 2014 21:32:20 GMT</pubDate>
    <dc:creator>Reeza</dc:creator>
    <dc:date>2014-05-26T21:32:20Z</dc:date>
    <item>
      <title>Execute proc export with an if statement</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173488#M44690</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have the following code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data a;&lt;/P&gt;&lt;P&gt;set b;&lt;/P&gt;&lt;P&gt;if variable x ne variable y;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc export data = a dbms= excel&lt;/P&gt;&lt;P&gt;outfile = path to safe file;&lt;/P&gt;&lt;P&gt;sheet = "test";&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there any option to run the proc export only if the number of observations is greater than 0?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This code is repeated comparing two variables each time and most of the time there are no observarions in the output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks to all&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 May 2014 20:25:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173488#M44690</guid>
      <dc:creator>SergioSanchez</dc:creator>
      <dc:date>2014-05-26T20:25:41Z</dc:date>
    </item>
    <item>
      <title>Re: Execute proc export with an if statement</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173489#M44691</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could wrap it in a macro. If you're repeating this multiple times, it probably should be in a macro anyways.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data class;&lt;/P&gt;&lt;P&gt;set sashelp.class;&lt;/P&gt;&lt;P&gt;if age in (13, 14) then height=age;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro export_conditionally(var1, var2);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data a;&lt;/P&gt;&lt;P&gt;set class;&lt;/P&gt;&lt;P&gt;if &amp;amp;var1 eq &amp;amp;var2;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql noprint;&lt;/P&gt;&lt;P&gt;select count(*)&amp;nbsp; into :count from a;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%if &amp;amp;count ne 0 %then %do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; proc export data=a dbms=xls&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; outfile="C:\_localdata\temp.xls";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sheet="test";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%mend;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%export_conditionally(weight, height)&lt;/P&gt;&lt;P&gt;%export_conditionally(age, height)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 May 2014 21:26:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173489#M44691</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-05-26T21:26:39Z</dc:date>
    </item>
    <item>
      <title>Re: Execute proc export with an if statement</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173490#M44692</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This may be helpful in your desired solution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Naeem&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro export (dsname);&lt;/P&gt;&lt;P&gt;%let dsid=%sysfunc(open(&amp;amp;dsname));&lt;/P&gt;&lt;P&gt;%let nobs=%sysfunc(attrn(&amp;amp;dsid,nobs));&lt;/P&gt;&lt;P&gt;%let rc=%sysfunc(close(&amp;amp;dsid));&lt;/P&gt;&lt;P&gt;title "Num Obs: &amp;amp;nobs";&lt;/P&gt;&lt;P&gt;%if &amp;amp;nobs&amp;gt;0 %then %do;&lt;/P&gt;&lt;P&gt;data a;&lt;/P&gt;&lt;P&gt;set &amp;amp;dsname;&lt;/P&gt;&lt;P&gt;if x ne y;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc export data = a dbms= excel&lt;/P&gt;&lt;P&gt;outfile = 'path to safe file';&lt;/P&gt;&lt;P&gt;sheet = "test";&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;%end;&lt;/P&gt;&lt;P&gt;%mend export;&lt;/P&gt;&lt;P&gt;%export(b)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 May 2014 21:28:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173490#M44692</guid>
      <dc:creator>stat_sas</dc:creator>
      <dc:date>2014-05-26T21:28:15Z</dc:date>
    </item>
    <item>
      <title>Re: Execute proc export with an if statement</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173491#M44693</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The open/close is probably a better way to get the count.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, if you're comparing variables and looking for identical values you may want to look into proc compare.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 May 2014 21:32:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173491#M44693</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-05-26T21:32:20Z</dc:date>
    </item>
    <item>
      <title>Re: Execute proc export with an if statement</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173492#M44694</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for your help Reeza&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I look proc compare, it´s seems a better solution.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 May 2014 06:35:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173492#M44694</guid>
      <dc:creator>SergioSanchez</dc:creator>
      <dc:date>2014-05-27T06:35:32Z</dc:date>
    </item>
    <item>
      <title>Re: Execute proc export with an if statement</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173493#M44695</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Not sure why you need all that macro code and file open close etc.&amp;nbsp; If you want to do a whole library of datasets where observations is greater than 0 then do:&lt;/P&gt;&lt;P&gt;data _null_;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; set sashelp.vtable (where=(libname="your libname here" and nobs=0) keep=memname);&lt;/P&gt;&lt;P&gt;&amp;nbsp; call execute('proc export data=your_libname.'||strip(memname)||' dbms= excel&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; outfile="s:\temp\rob\export_file_'||strip(memname)||'.xls;&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; sheet = "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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; run;');&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This will select any dataset with &amp;gt; 0 observations in the libname and create export statements for each one.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 May 2014 08:37:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173493#M44695</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-05-27T08:37:54Z</dc:date>
    </item>
    <item>
      <title>Re: Execute proc export with an if statement</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173494#M44696</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks EW9.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;it´s seems is an easy way to achieve the goal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry for the incovenience but&amp;nbsp; I try to run the following code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data _null_;&amp;nbsp; &lt;BR /&gt;set sashelp.vtable (where=(libname="difiere" and nobs=0) keep=memname);&lt;BR /&gt;call execute('proc export data=difiere.'||strip(memname)||' dbms= excel&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; outfile="c:\dirtest\export_file_'||strip(memname)||'.xls;&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; sheet = "test";&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; run;');&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and I revieve this error in the log:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ERROR: Variable libname is not on file SASHELP.VTABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don´t understand anything, I can open the vtable dataset and see the variable.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Why do I get this message?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 May 2014 09:34:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173494#M44696</guid>
      <dc:creator>SergioSanchez</dc:creator>
      <dc:date>2014-05-27T09:34:37Z</dc:date>
    </item>
    <item>
      <title>Re: Execute proc export with an if statement</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173495#M44697</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Done&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks to all for the help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 May 2014 09:10:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173495#M44697</guid>
      <dc:creator>SergioSanchez</dc:creator>
      <dc:date>2014-05-28T09:10:37Z</dc:date>
    </item>
    <item>
      <title>Re: Execute proc export with an if statement</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173496#M44698</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please consider marking the question as answered for future users. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 May 2014 14:32:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173496#M44698</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2014-05-28T14:32:01Z</dc:date>
    </item>
    <item>
      <title>Re: Execute proc export with an if statement</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173497#M44699</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sorry&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It´s already done.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 28 May 2014 15:24:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/Execute-proc-export-with-an-if-statement/m-p/173497#M44699</guid>
      <dc:creator>SergioSanchez</dc:creator>
      <dc:date>2014-05-28T15:24:36Z</dc:date>
    </item>
  </channel>
</rss>

