<?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 macros in proc/data steps in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15560#M2741</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm so not good with macros, but trying to learn..&lt;/P&gt;&lt;P&gt;Would this be possible?&amp;nbsp; I have 5 different tables that I have to run throuhg first a proc transpose then a data step and lastly in a proc expand....long codes.&amp;nbsp; I guess I can copy the code 5 times and insert each table name, but if instead I can use macors, that would be much better.&amp;nbsp; Oh and one more thing the new output from each step to also be 'macroed' so I don't have to type the new table name in... so the output from the proc transpose, to be somehow picked up by the second data step ?&amp;nbsp; I know I'm probably asking too much.. Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 15 Dec 2011 14:56:51 GMT</pubDate>
    <dc:creator>podarum</dc:creator>
    <dc:date>2011-12-15T14:56:51Z</dc:date>
    <item>
      <title>macros in proc/data steps</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15560#M2741</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm so not good with macros, but trying to learn..&lt;/P&gt;&lt;P&gt;Would this be possible?&amp;nbsp; I have 5 different tables that I have to run throuhg first a proc transpose then a data step and lastly in a proc expand....long codes.&amp;nbsp; I guess I can copy the code 5 times and insert each table name, but if instead I can use macors, that would be much better.&amp;nbsp; Oh and one more thing the new output from each step to also be 'macroed' so I don't have to type the new table name in... so the output from the proc transpose, to be somehow picked up by the second data step ?&amp;nbsp; I know I'm probably asking too much.. Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Dec 2011 14:56:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15560#M2741</guid>
      <dc:creator>podarum</dc:creator>
      <dc:date>2011-12-15T14:56:51Z</dc:date>
    </item>
    <item>
      <title>Re: macros in proc/data steps</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15561#M2742</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes, you can.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;%macro&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; test(indsn, outdsn);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;/* put all your sas code here, then replace your input dataset with &amp;amp;indsn, output dateset with &amp;amp;outdsn */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;%mend&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; test;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;/*apply your macro */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;%&lt;STRONG&gt;&lt;EM&gt;test&lt;/EM&gt;&lt;/STRONG&gt;(in1,out1)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: teal; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;....&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;%&lt;STRONG&gt;&lt;EM&gt;test&lt;/EM&gt;&lt;/STRONG&gt;(in5,out5)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;/* example */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;%macro&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; test(indsn,outdsn);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;data&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &amp;amp;outdsn;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;set&lt;/SPAN&gt; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: teal; font-size: 10pt;"&gt;sashelp.&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;&amp;amp;indsn;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;proc&lt;/STRONG&gt; &lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;print&lt;/STRONG&gt; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;data&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;=&amp;amp;syslast (&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;obs&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;=&lt;/SPAN&gt;&lt;STRONG style="color: teal; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;5&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;%mend&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;%&lt;STRONG&gt;&lt;EM&gt;test&lt;/EM&gt;&lt;/STRONG&gt;(class,out1)&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Dec 2011 15:08:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15561#M2742</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2011-12-15T15:08:27Z</dc:date>
    </item>
    <item>
      <title>macros in proc/data steps</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15562#M2743</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Hi:&lt;/P&gt;&lt;P&gt;&amp;nbsp; This is a very good example of using SAS Macro processing. While this paper won't answer all your specific questions, I believe it has enough good examples to get you what you want.&lt;/P&gt;&lt;P&gt;&lt;A href="http://www2.sas.com/proceedings/sugi28/056-28.pdf"&gt;http://www2.sas.com/proceedings/sugi28/056-28.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; The key to success is to start with a working SAS program. Then print it out and grab a yellow highlighter and highlight all the code snippets like dataset names that you do not want to type. Those highlighted places now become the places where you might use a macro variable to substitute for the hard-coded name. Then go on from there, to introduce conditional logic if you need it and make a macro program, if you need it. The above paper takes you from the very beginning to having a complete macro program with conditional processing. Reading that, plus looking at some other papers will help you a lot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cynthia&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Dec 2011 15:11:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15562#M2743</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2011-12-15T15:11:21Z</dc:date>
    </item>
    <item>
      <title>Re: macros in proc/data steps</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15563#M2744</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Something like this ? it didn't work..&lt;/P&gt;&lt;P&gt;&lt;STRONG style=": ; color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;SPAN style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt; &lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%macro test (indsn, outdsn); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc transpose data=&amp;amp;indsn &lt;/P&gt;&lt;P&gt;OUT=&amp;amp;outdsn (drop=_NAME_ rename=(F1=CMA_NAME _label_=Date col1=HAM)); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;var Jan_1985--Jul_2011; &lt;/P&gt;&lt;P&gt;by F1 notsorted; &lt;/P&gt;&lt;P&gt;run; &lt;/P&gt;&lt;P&gt;%mend test; &lt;/P&gt;&lt;P&gt;%test (Data.A_B,Data.A_B2);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Dec 2011 15:35:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15563#M2744</guid>
      <dc:creator>podarum</dc:creator>
      <dc:date>2011-12-15T15:35:46Z</dc:date>
    </item>
    <item>
      <title>Re: macros in proc/data steps</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15564#M2745</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Thanks linlin, it actually did work.. i was having problem with my program.. thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Dec 2011 15:48:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15564#M2745</guid>
      <dc:creator>podarum</dc:creator>
      <dc:date>2011-12-15T15:48:33Z</dc:date>
    </item>
    <item>
      <title>Re: macros in proc/data steps</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15565#M2746</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; You welcome. I am glad it works.&lt;/P&gt;&lt;P&gt;don't add ";" to "%test (Data.A_B,Data.A_B2)"&lt;/P&gt;&lt;P&gt;it may cause problem.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Dec 2011 16:04:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15565#M2746</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2011-12-15T16:04:33Z</dc:date>
    </item>
    <item>
      <title>Re: macros in proc/data steps</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15566#M2747</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; To add to this, how could I make sure that each of my new 5 tables, get a new varaible inserted?&amp;nbsp; For example out1 would have NewVar = "Red' and for out2 would have NewVar="Blue"... thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Dec 2011 16:05:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15566#M2747</guid>
      <dc:creator>podarum</dc:creator>
      <dc:date>2011-12-15T16:05:48Z</dc:date>
    </item>
    <item>
      <title>Re: macros in proc/data steps</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15567#M2748</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;you can add another macro variable;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="background-color: white; font-family: 'Courier New'; color: navy; font-size: 10pt;"&gt;%macro&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; test(indsn, outdsn,nvar);&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;/* put all your sas code here, then replace your input dataset with &amp;amp;indsn, output dateset with &amp;amp;outdsn &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: green; font-size: 10pt;"&gt;replace newvar="Blue" with newvar="&amp;amp;nvar" */&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="background-color: white; font-family: 'Courier New'; color: navy; font-size: 10pt;"&gt;%mend&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; test;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;%test (Data.A_B,Data.A_B2,Blue)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Dec 2011 16:12:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/macros-in-proc-data-steps/m-p/15567#M2748</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2011-12-15T16:12:43Z</dc:date>
    </item>
  </channel>
</rss>

