<?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: Arrays and Do over in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-over/m-p/570429#M160846</link>
    <description>&lt;P&gt;Thank you that was helpful&lt;/P&gt;</description>
    <pubDate>Tue, 02 Jul 2019 05:19:20 GMT</pubDate>
    <dc:creator>ChuksManuel</dc:creator>
    <dc:date>2019-07-02T05:19:20Z</dc:date>
    <item>
      <title>Arrays and Do over</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-over/m-p/570419#M160839</link>
      <description>&lt;P&gt;Hello programmers,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have&amp;nbsp; my variables like this: heart1, heart2, heart3, and each of these variables have responses&amp;nbsp; coded as 1(most of the time), 2 (some of the time), 3 (rarely or never)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to create 3 new dichotomous (0,1) variables named heartvar1-heartvar3 which corresponds to heart1-heart3 such&amp;nbsp;&lt;/P&gt;&lt;P&gt;that heartvar1=1 if heart1=1 and heartvar1=0 otherwise, if heart1 is not missing. I want to also do this for heart2 and heart3.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I know i can use an array and a do over statement. Code is shown below&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data one; set have;
array heart1-heart3;
array heartvar1-heartvar3;
do over ya heart1-heart3;
  if heart1=1 and heart1 ne . then heartvar1=1;
      else heartvar1=0; 
   if heart2= 1 and heart2 ne . then heartvar2= 1;
     else heartvar2=0;
      if heart3 = 1 and heart3 ne . then heartvar3= 1;
        else heartvar3=0;
  end;
  end;
  end;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;My code did not run well and i was wondering what could be wrong.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jul 2019 02:42:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-over/m-p/570419#M160839</guid>
      <dc:creator>ChuksManuel</dc:creator>
      <dc:date>2019-07-02T02:42:04Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays and Do over</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-over/m-p/570421#M160840</link>
      <description>&lt;P&gt;Then main trouble is you did not create names for your arrays.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;array heart heart1-heart3;
array heartvar heartvar1-heartvar3;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Now that you have the arrays defined you can use them.&lt;/P&gt;
&lt;P&gt;You can use DO OVER.&amp;nbsp; SAS has removed it from the documentation, but it still works.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data one; 
  set have;
  array heart heart1-heart3;
  array heartvar heartvar1-heartvar3;
  do over heart;
    if heart in (0 1) then heartvar = 1;
    else if heart =2 then heartvar=0;
    else heartvar=.;
  end;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;You can also use indexes into the arrays. Which is documented.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;  do i=1 to dim(heart);
    if heart[i] in (0 1) then heartvar[i] = 1;
    else if heart[i] =2 then heartvar[i]=0;
    else heartvar[i]=.;
  end;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 02 Jul 2019 03:11:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-over/m-p/570421#M160840</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2019-07-02T03:11:41Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays and Do over</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-over/m-p/570423#M160842</link>
      <description>&lt;P&gt;Read the log. For every ERROR or WARNING reported, read the documentation of the respective statement, and correct it. Do that top-down, because earlier ERRORs and WARNINGs are often the cause for later problems, and you may find that fixing the first problem does away all the others. Or that only fixing one ERROR enables SAS to find the following ones.&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jul 2019 03:33:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-over/m-p/570423#M160842</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2019-07-02T03:33:42Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays and Do over</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-over/m-p/570425#M160843</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if heart1=1 and heart1 ne .&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The and portion is redundant.&amp;nbsp; If heart1=1 then by definition it is not missing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is like saying:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if foo=1 and foo ne 2&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;A boolean statement (i.e. an if statement) will return 0 (false) or 1 (true).&amp;nbsp; So:&lt;/P&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="sas"&gt;  &lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; heart1&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; and heart1 &lt;SPAN class="token operator"&gt;ne&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;then&lt;/SPAN&gt; heartvar1&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
      &lt;SPAN class="token keyword"&gt;else&lt;/SPAN&gt; heartvar1&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt; 
   &lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; heart2&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; and heart2 &lt;SPAN class="token operator"&gt;ne&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;then&lt;/SPAN&gt; heartvar2&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
     &lt;SPAN class="token keyword"&gt;else&lt;/SPAN&gt; heartvar2&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
      &lt;SPAN class="token keyword"&gt;if&lt;/SPAN&gt; heart3 &lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; and heart3 &lt;SPAN class="token operator"&gt;ne&lt;/SPAN&gt; &lt;SPAN class="token punctuation"&gt;.&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;then&lt;/SPAN&gt; heartvar3&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
        &lt;SPAN class="token keyword"&gt;else&lt;/SPAN&gt; heartvar3&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;0&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;
&lt;CODE&gt;&lt;/CODE&gt;&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;can be abbreviated/simplified to:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;heartvar1 = (heart=1);
heartvar2 = (heart=2);
heartvar3 = (heart=3);&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Which using your arrays becomes:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;array h{*} heart1-heart3;
array hv{*} heartvar1-heartvar3;
do i=1 to dim(h);
   hv{i}=(h{i}=1);
end;
drop i;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&lt;CODE class=" language-sas"&gt;&lt;/CODE&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jul 2019 04:14:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-over/m-p/570425#M160843</guid>
      <dc:creator>ScottBass</dc:creator>
      <dc:date>2019-07-02T04:14:55Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays and Do over</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-over/m-p/570427#M160845</link>
      <description>&lt;P&gt;Thank you!&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jul 2019 05:03:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-over/m-p/570427#M160845</guid>
      <dc:creator>ChuksManuel</dc:creator>
      <dc:date>2019-07-02T05:03:18Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays and Do over</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-over/m-p/570429#M160846</link>
      <description>&lt;P&gt;Thank you that was helpful&lt;/P&gt;</description>
      <pubDate>Tue, 02 Jul 2019 05:19:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-over/m-p/570429#M160846</guid>
      <dc:creator>ChuksManuel</dc:creator>
      <dc:date>2019-07-02T05:19:20Z</dc:date>
    </item>
  </channel>
</rss>

