<?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: intnx macro variable in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/intnx-macro-variable/m-p/217081#M53415</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;%put and %input are macro &lt;SPAN style="text-decoration: underline;"&gt;statements&lt;/SPAN&gt; and not macro &lt;SPAN style="text-decoration: underline;"&gt;functions&lt;/SPAN&gt;. %put (or %input) is not allowed within another macro statement.&lt;/P&gt;&lt;P&gt;See &lt;A href="http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a001302436.htm" title="http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a001302436.htm"&gt;SAS(R) 9.2 Macro Language: Reference&lt;/A&gt;, paragraph "Solving Open Code Statement Recursion Problems".&lt;A _jive_internal="true" href="https://communities.sas.com/" name="a001066156" title="https://communities.sas.com/"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;I suggest you solve your conversion in a data _null_ step and use call symput to create the macro variable startqtr:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let cutoff = 201506; &lt;/P&gt;&lt;P&gt;%let averageperiod = 8;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;startqtr = intnx('qtr', input(put(&amp;amp;cutoff*100+ 01,8.),yymmdd8.), -&amp;amp;averageperiod, 'same');&lt;/P&gt;&lt;P&gt;call symput('startqtr',put(startqtr,best.));&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 05 Aug 2015 10:49:22 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2015-08-05T10:49:22Z</dc:date>
    <item>
      <title>intnx macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/intnx-macro-variable/m-p/217078#M53412</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;I'm getting an error when I run this code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let cutoff = 201506; &lt;/P&gt;&lt;P&gt;%let averageperiod = 8;&lt;/P&gt;&lt;P&gt;%let startqtr = %SYSFUNC(intnx('qtr', %input(%put(&amp;amp;cutoff*100+ 01,8.),yymmdd8.), -&amp;amp;averageperiod, 'same'));&lt;/P&gt;&lt;P&gt;%put &amp;amp;startqtr;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the error says...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ERROR: Open code statement recursion detected.&lt;/P&gt;&lt;P&gt;885&amp;nbsp; %let averageperiod = 8;&lt;/P&gt;&lt;P&gt;886&amp;nbsp; %let startqtr = %SYSFUNC(intnx('qtr', %input(%put(&amp;amp;cutoff*100+&lt;/P&gt;&lt;P&gt;886! 01,8.),yymmdd8.), -8, 'same'));&lt;/P&gt;&lt;P&gt;ERROR: Open code statement recursion detected.&lt;/P&gt;&lt;P&gt;887&amp;nbsp; %put &amp;amp;startqtr;&lt;/P&gt;&lt;P&gt;ERROR: Open code statement recursion detected.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Aug 2015 09:24:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/intnx-macro-variable/m-p/217078#M53412</guid>
      <dc:creator>brophymj</dc:creator>
      <dc:date>2015-08-05T09:24:37Z</dc:date>
    </item>
    <item>
      <title>Re: intnx macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/intnx-macro-variable/m-p/217079#M53413</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;the %put function exist? It seems that the error is because the %put, if you run &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let cutoff = 201506;&lt;/P&gt;&lt;P&gt;%let averageperiod = 8;&lt;/P&gt;&lt;P&gt;%let var=%put(&amp;amp;cutoff*100+ 01,8.);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You have the same error&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Aug 2015 09:52:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/intnx-macro-variable/m-p/217079#M53413</guid>
      <dc:creator>arodriguez</dc:creator>
      <dc:date>2015-08-05T09:52:38Z</dc:date>
    </item>
    <item>
      <title>Re: intnx macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/intnx-macro-variable/m-p/217080#M53414</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Why not simplify the code by using a call symput in a data _null_.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;%let cutoff = 2015Q06;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;%let averageperiod = 8;&lt;/P&gt;&lt;P style="font-size: 13px; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; background-color: #ffffff;"&gt;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call symput('startqtr',intnx('qtr',input(&amp;amp;cutoff,yyq9.),-&amp;amp;averageperiod, 'same'));&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px; background-color: #ffffff;"&gt;run;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif; font-size: 13px; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px; background-color: #ffffff; font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;"&gt;My personal preference is to not put actionable code in macro as it just gets too complicated and difficult to read:&amp;nbsp; Leave macros for parameters for the overall program, and pieces of code which you don't want to repeat.&amp;nbsp; Write base SAS to manipulate data.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Aug 2015 10:45:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/intnx-macro-variable/m-p/217080#M53414</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2015-08-05T10:45:07Z</dc:date>
    </item>
    <item>
      <title>Re: intnx macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/intnx-macro-variable/m-p/217081#M53415</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;%put and %input are macro &lt;SPAN style="text-decoration: underline;"&gt;statements&lt;/SPAN&gt; and not macro &lt;SPAN style="text-decoration: underline;"&gt;functions&lt;/SPAN&gt;. %put (or %input) is not allowed within another macro statement.&lt;/P&gt;&lt;P&gt;See &lt;A href="http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a001302436.htm" title="http://support.sas.com/documentation/cdl/en/mcrolref/61885/HTML/default/viewer.htm#a001302436.htm"&gt;SAS(R) 9.2 Macro Language: Reference&lt;/A&gt;, paragraph "Solving Open Code Statement Recursion Problems".&lt;A _jive_internal="true" href="https://communities.sas.com/" name="a001066156" title="https://communities.sas.com/"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;I suggest you solve your conversion in a data _null_ step and use call symput to create the macro variable startqtr:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;%let cutoff = 201506; &lt;/P&gt;&lt;P&gt;%let averageperiod = 8;&lt;/P&gt;&lt;P&gt;data _null_;&lt;/P&gt;&lt;P&gt;startqtr = intnx('qtr', input(put(&amp;amp;cutoff*100+ 01,8.),yymmdd8.), -&amp;amp;averageperiod, 'same');&lt;/P&gt;&lt;P&gt;call symput('startqtr',put(startqtr,best.));&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Aug 2015 10:49:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/intnx-macro-variable/m-p/217081#M53415</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2015-08-05T10:49:22Z</dc:date>
    </item>
    <item>
      <title>Re: intnx macro variable</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/intnx-macro-variable/m-p/217082#M53416</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You have several things wrong starting the conversion of YYYYMM to date.&amp;nbsp; I formatted STARTQTR but you may want to leave it integer(sas date).&amp;nbsp; Consider the follow&lt;/P&gt;&lt;DIV style="font-family: Courier New; font-size: 11pt;"&gt;&lt;SPAN style="color: #008000; background-color: #ffffff;"&gt;/*&lt;BR /&gt;%let cutoff = 201506;&lt;BR /&gt;%let averageperiod = 8;&lt;BR /&gt;%let startqtr = %SYSFUNC(intnx('qtr', %input(%put(&amp;amp;cutoff*100+ 01,8.),yymmdd8.), -&amp;amp;averageperiod, 'same'));&lt;BR /&gt;%put &amp;amp;startqtr;&lt;BR /&gt;*/&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%let&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; cutoff = 201506;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #008000; background-color: #ffffff;"&gt;/*To convert CUTOFF to SAS date you can use YYMMN informat*/&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%let&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; cutoffdate = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%sysfunc&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;(inputn(&amp;amp;cutoff,yymmn,6));&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%put&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; &amp;amp;=cutoffdate;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%let&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; averageperiod = 8;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #008000; background-color: #ffffff;"&gt;/*dont use quotes 'qtr' and 'same' are wrong*/&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%let&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; startqtr = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%SYSFUNC&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;(intnx(qtr, &amp;amp;cutoffdate, -&amp;amp;averageperiod, same),date9);&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%put&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; &amp;amp;=startqtr;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #008000; background-color: #ffffff;"&gt;/*To convert CUTOFF to SAS date you can use YYMMN informat*/&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;33&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%let&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; cutoffdate = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%sysfunc&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;(inputn(&amp;amp;cutoff,yymmn,6));&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;34&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%put&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; &amp;amp;=cutoffdate;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;CUTOFFDATE=&lt;/SPAN&gt;&lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;20240&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;35&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;36&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%let&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; averageperiod = &lt;/SPAN&gt;&lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;8&lt;/STRONG&gt;; &lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;37&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #008000; background-color: #ffffff;"&gt;/*dont use quotes 'qtr' and 'same' are wrong*/&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;38&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%let&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; startqtr = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%SYSFUNC&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;(intnx(qtr, &amp;amp;cutoffdate, -&amp;amp;averageperiod, same),date9);&lt;BR /&gt;&lt;/SPAN&gt;&lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;39&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff; background-color: #ffffff;"&gt;%put&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt; &amp;amp;=startqtr;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;STARTQTR=&lt;/SPAN&gt;&lt;STRONG style="color: #008080; background-color: #ffffff;"&gt;01&lt;/STRONG&gt;&lt;SPAN style="color: #000000; background-color: #ffffff;"&gt;JUN2013&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 05 Aug 2015 10:50:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/intnx-macro-variable/m-p/217082#M53416</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2015-08-05T10:50:17Z</dc:date>
    </item>
  </channel>
</rss>

