<?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: The index i in do loop in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/The-index-i-in-do-loop/m-p/471361#M120735</link>
    <description>&lt;P&gt;Here's one of the missing pieces.&amp;nbsp; You will need to set up an array:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;array vars {4} var1-var4;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then you can refer to elements in the array as vars{i}:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;vars{i}=lag(vars(i-1));&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;What is the "MUST" part of the question?&amp;nbsp; MUST use a DO loop?&amp;nbsp; MUST get the right result?&amp;nbsp; MUST use LAG?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;You might be able to solve this without fancy tools, just knowledge of how the DATA step works:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;data want;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;var4=var3;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;var3=var2;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;var2=var1;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;set have;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;retain var1-var4;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 19 Jun 2018 13:29:23 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2018-06-19T13:29:23Z</dc:date>
    <item>
      <title>The index i in do loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/The-index-i-in-do-loop/m-p/471357#M120732</link>
      <description>&lt;P&gt;Hi folks,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have some problem to write the following code by using a do loop. Say I have a column and its name is var1. Now I want to generate the second column and its name is var2, where var2=lag(var1). Similarly, var3=lag(var2) etc.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;set column1;&lt;/P&gt;&lt;P&gt;var2=lag(var1);&lt;/P&gt;&lt;P&gt;var3=lag(var2);&lt;/P&gt;&lt;P&gt;var4=lag(var3);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;When I try to use a do loop:&lt;/P&gt;&lt;P&gt;data want;&lt;BR /&gt;set column1;&lt;BR /&gt;do i=2 to 4;&lt;BR /&gt;vari=lag(var(i-1));&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Obviously it's not working cuz the i is mixed with the string. Any idea on how to fix it? Thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 19 Jun 2018 13:10:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/The-index-i-in-do-loop/m-p/471357#M120732</guid>
      <dc:creator>liyongkai800</dc:creator>
      <dc:date>2018-06-19T13:10:12Z</dc:date>
    </item>
    <item>
      <title>Re: The index i in do loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/The-index-i-in-do-loop/m-p/471361#M120735</link>
      <description>&lt;P&gt;Here's one of the missing pieces.&amp;nbsp; You will need to set up an array:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;array vars {4} var1-var4;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Then you can refer to elements in the array as vars{i}:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;vars{i}=lag(vars(i-1));&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;What is the "MUST" part of the question?&amp;nbsp; MUST use a DO loop?&amp;nbsp; MUST get the right result?&amp;nbsp; MUST use LAG?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;You might be able to solve this without fancy tools, just knowledge of how the DATA step works:&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;data want;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;var4=var3;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;var3=var2;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;var2=var1;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;set have;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;retain var1-var4;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;run;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 19 Jun 2018 13:29:23 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/The-index-i-in-do-loop/m-p/471361#M120735</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-06-19T13:29:23Z</dc:date>
    </item>
    <item>
      <title>Re: The index i in do loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/The-index-i-in-do-loop/m-p/471362#M120736</link>
      <description>&lt;P&gt;Use an array&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
set column1;
array vars{4} var1-var4;
do i=2 to 4;
  vars{i}=lag(vars{i-1});
end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Edit: closed the do block. &lt;/P&gt;</description>
      <pubDate>Tue, 19 Jun 2018 13:31:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/The-index-i-in-do-loop/m-p/471362#M120736</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2018-06-19T13:31:43Z</dc:date>
    </item>
    <item>
      <title>Re: The index i in do loop</title>
      <link>https://communities.sas.com/t5/SAS-Programming/The-index-i-in-do-loop/m-p/471390#M120750</link>
      <description>I am fairly new to SAS so I just want to seek all the possibilities. I see array is a very good idea to solve this problem, but I just can't help thinking about do loop. Still, I appreciate your help.</description>
      <pubDate>Tue, 19 Jun 2018 14:57:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/The-index-i-in-do-loop/m-p/471390#M120750</guid>
      <dc:creator>liyongkai800</dc:creator>
      <dc:date>2018-06-19T14:57:38Z</dc:date>
    </item>
  </channel>
</rss>

