<?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 Adding value to Do Loop Variable in a Macro in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Adding-value-to-Do-Loop-Variable-in-a-Macro/m-p/326425#M72676</link>
    <description>&lt;P&gt;I'm trying to add a value to do loop variable within a macro. However it keeps failing. Here is my code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%macro base (yr);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%do i=10 %to &amp;amp;yr;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc sort data=lib.den(&amp;amp;i+1).pzr out=ID_20(&amp;amp;i+1);by unique_id;run; &lt;BR /&gt;proc sort data=lib.den&amp;amp;i.pzr out=den_20&amp;amp;i;by unique_id;run;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%mend;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%base (14);&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;All the errors appear to be around the parenthesis&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The error I get is this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ERROR 22-322: Syntax error, expecting one of the following: ;, ASCII, BUFFNO, DANISH, DATA, DATECOPY, DETAILS, DIAG, DUPOUT, &lt;BR /&gt; EBCDIC, EQUALS, FINNISH, FORCE, IN, ISA, L, LEAVE, LIST, MESSAGE, MSG, NATIONAL, NODUP, NODUPKEY, NODUPKEYS, &lt;BR /&gt; NODUPLICATE, NODUPLICATES, NODUPREC, NODUPRECS, NODUPS, NOEQUALS, NORWEGIAN, NOTHREADS, NOUNIKEY, NOUNIKEYS, &lt;BR /&gt; NOUNIQUEKEY, NOUNIQUEKEYS, NOUNIQUEREC, NOUNIQUERECS, NOUNIREC, NOUNIRECS, OSA, OUT, OVERWRITE, PAGESIZE, PRESORTED, &lt;BR /&gt; PSIZE, REVERSE, SIZE, SORTSEQ, SORTSIZE, SORTWKNO, SWEDISH, T, TAGSORT, TECH, TECHNIQUE, TESTHSI, THREADS, UNIOUT,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm trying to grab the current year of data I'm intersted in and the next years of data. Thanks for any insight!&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Fri, 20 Jan 2017 21:31:56 GMT</pubDate>
    <dc:creator>endofline</dc:creator>
    <dc:date>2017-01-20T21:31:56Z</dc:date>
    <item>
      <title>Adding value to Do Loop Variable in a Macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Adding-value-to-Do-Loop-Variable-in-a-Macro/m-p/326425#M72676</link>
      <description>&lt;P&gt;I'm trying to add a value to do loop variable within a macro. However it keeps failing. Here is my code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%macro base (yr);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%do i=10 %to &amp;amp;yr;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc sort data=lib.den(&amp;amp;i+1).pzr out=ID_20(&amp;amp;i+1);by unique_id;run; &lt;BR /&gt;proc sort data=lib.den&amp;amp;i.pzr out=den_20&amp;amp;i;by unique_id;run;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%mend;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%base (14);&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;All the errors appear to be around the parenthesis&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The error I get is this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ERROR 22-322: Syntax error, expecting one of the following: ;, ASCII, BUFFNO, DANISH, DATA, DATECOPY, DETAILS, DIAG, DUPOUT, &lt;BR /&gt; EBCDIC, EQUALS, FINNISH, FORCE, IN, ISA, L, LEAVE, LIST, MESSAGE, MSG, NATIONAL, NODUP, NODUPKEY, NODUPKEYS, &lt;BR /&gt; NODUPLICATE, NODUPLICATES, NODUPREC, NODUPRECS, NODUPS, NOEQUALS, NORWEGIAN, NOTHREADS, NOUNIKEY, NOUNIKEYS, &lt;BR /&gt; NOUNIQUEKEY, NOUNIQUEKEYS, NOUNIQUEREC, NOUNIQUERECS, NOUNIREC, NOUNIRECS, OSA, OUT, OVERWRITE, PAGESIZE, PRESORTED, &lt;BR /&gt; PSIZE, REVERSE, SIZE, SORTSEQ, SORTSIZE, SORTWKNO, SWEDISH, T, TAGSORT, TECH, TECHNIQUE, TESTHSI, THREADS, UNIOUT,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm trying to grab the current year of data I'm intersted in and the next years of data. Thanks for any insight!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Jan 2017 21:31:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Adding-value-to-Do-Loop-Variable-in-a-Macro/m-p/326425#M72676</guid>
      <dc:creator>endofline</dc:creator>
      <dc:date>2017-01-20T21:31:56Z</dc:date>
    </item>
    <item>
      <title>Re: Adding value to Do Loop Variable in a Macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Adding-value-to-Do-Loop-Variable-in-a-Macro/m-p/326427#M72677</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Your code:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;lib.den(&amp;amp;i+1).pzr&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Let's assume i=1, then this&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;will resolve to:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;lib.den(1+1).pzr&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let i=1;

%put lib.den(&amp;amp;i+1).pzr;&lt;BR /&gt;&lt;BR /&gt;RESULTS: &lt;BR /&gt;&lt;BR /&gt;348759 %let i=1;&lt;BR /&gt;348760&lt;BR /&gt;348761 %put lib.den(&amp;amp;i+1).pzr;&lt;BR /&gt;SYMBOLGEN: Macro variable I resolves to 1&lt;BR /&gt;lib.den(1+1).pzr&lt;BR /&gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;This is not valid SAS code.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Try removing the parenthesis, use %eval with brackets or create a new macro variable outside and use that.&lt;/SPAN&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let i=1;

%put lib.den%eval(&amp;amp;i+1).pzr;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;SPAN&gt;Results:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;348762  %let i=1;
348763
348764  %put lib.den%eval(&amp;amp;i+1).pzr;
SYMBOLGEN:  Macro variable I resolves to 1
lib.den2.pzr
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Probably another period there that's causing issues, but I think you should have the idea now.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Jan 2017 21:38:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Adding-value-to-Do-Loop-Variable-in-a-Macro/m-p/326427#M72677</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-01-20T21:38:38Z</dc:date>
    </item>
    <item>
      <title>Re: Adding value to Do Loop Variable in a Macro</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Adding-value-to-Do-Loop-Variable-in-a-Macro/m-p/326429#M72678</link>
      <description>&lt;P&gt;Thank you! I couldn't remember to put the %eval. Once I put that it worked. I kept the period originally since I wanted to keep the pzr as it is part of the database name as in this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;proc sort data=lib.den&amp;amp;i.pzr out=den_20&amp;amp;i;by unique_id;run;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;but with the %eval statement, I no longer need it so I removed it. Thanks again!&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Jan 2017 21:44:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Adding-value-to-Do-Loop-Variable-in-a-Macro/m-p/326429#M72678</guid>
      <dc:creator>endofline</dc:creator>
      <dc:date>2017-01-20T21:44:16Z</dc:date>
    </item>
  </channel>
</rss>

