<?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 Loops in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/548938#M152264</link>
    <description>&lt;P&gt;What does your log say? Can you provide an example of what your data looks like?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Makes it much easier to help you &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Fri, 05 Apr 2019 19:59:58 GMT</pubDate>
    <dc:creator>PeterClemmensen</dc:creator>
    <dc:date>2019-04-05T19:59:58Z</dc:date>
    <item>
      <title>Arrays and Do Loops</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/548934#M152262</link>
      <description>&lt;P&gt;Hi all,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to select the patients with mental health diagnosis using ICD10 code. There were up to 30 diagnosis variables for each patient, I will define the patients having mental health diagnosis if the first letter of any 30 diagnosis variables is 'F', but it seems my code resulted in all missing in mental_flag, why?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;array dx(30) diag1-diag30;&lt;BR /&gt;do i=1 to 30;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; if substr(dx(i),1,1)='F' then mental_flag=1;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; else if substr(dx(i),1,1) notin ("F","") then mental_flag=0;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; else if substr(dx(i),1,1) in ("") then mental_flag=.;&lt;BR /&gt;end;&lt;BR /&gt;drop i;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Apr 2019 19:55:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/548934#M152262</guid>
      <dc:creator>joe66</dc:creator>
      <dc:date>2019-04-05T19:55:19Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays and Do Loops</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/548937#M152263</link>
      <description>&lt;P&gt;Your code works like this:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you find a variable whose value starts with "F", the flag gets set to 1, and then the loop continues searching and if the next variable (or any subsequent variable) does not start with "F", then the flag is set back to 0 or missing.&amp;nbsp;You probably want to stop the loop immediately upon finding an "F".&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Perhaps easier is to use the WHICHC function and then no looping is needed.&amp;nbsp;&lt;A href="https://documentation.sas.com/?cdcId=pgmmvacdc&amp;amp;cdcVersion=9.4&amp;amp;docsetId=lefunctionsref&amp;amp;docsetTarget=p0jfvenvsqk24vn1q2ypospoq9ij.htm&amp;amp;locale=en"&gt;https://documentation.sas.com/?cdcId=pgmmvacdc&amp;amp;cdcVersion=9.4&amp;amp;docsetId=lefunctionsref&amp;amp;docsetTarget=p0jfvenvsqk24vn1q2ypospoq9ij.htm&amp;amp;locale=en&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Apr 2019 20:23:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/548937#M152263</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2019-04-05T20:23:46Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays and Do Loops</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/548938#M152264</link>
      <description>&lt;P&gt;What does your log say? Can you provide an example of what your data looks like?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Makes it much easier to help you &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Apr 2019 19:59:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/548938#M152264</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-04-05T19:59:58Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays and Do Loops</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/548942#M152265</link>
      <description>&lt;P&gt;id&amp;nbsp; diag1&amp;nbsp; diag2&amp;nbsp; diag3 diag4 diag5............................diag30&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; A11&amp;nbsp; &amp;nbsp; A12&amp;nbsp; &amp;nbsp; &amp;nbsp;A13&amp;nbsp; &amp;nbsp;A14&amp;nbsp; &amp;nbsp; F10&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; A12&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; B11&amp;nbsp; &amp;nbsp; B10&amp;nbsp; &amp;nbsp; &amp;nbsp;B12&amp;nbsp; &amp;nbsp;B17&amp;nbsp; &amp;nbsp; B19&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;B20&lt;/P&gt;&lt;P&gt;3&amp;nbsp; &amp;nbsp; C01&amp;nbsp; &amp;nbsp; C12&amp;nbsp; &amp;nbsp; C11&amp;nbsp; &amp;nbsp; F02&amp;nbsp; &amp;nbsp; &amp;nbsp;C15&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;My data looks like the above.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Apr 2019 20:05:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/548942#M152265</guid>
      <dc:creator>joe66</dc:creator>
      <dc:date>2019-04-05T20:05:44Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays and Do Loops</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/548943#M152266</link>
      <description>Yes, you are right. how to change my code?&lt;BR /&gt;&lt;BR /&gt;Thanks!</description>
      <pubDate>Fri, 05 Apr 2019 20:06:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/548943#M152266</guid>
      <dc:creator>joe66</dc:creator>
      <dc:date>2019-04-05T20:06:20Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays and Do Loops</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/548945#M152267</link>
      <description>&lt;P&gt;If 'F' only occurs at the start of the codes, my limited knowledge of ICD-10 makes me think this might be the case then this may work:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data want;
   set have;
   Flag =( index(cat(of diag:),'F')&amp;gt;0);
run;&lt;/PRE&gt;</description>
      <pubDate>Fri, 05 Apr 2019 20:09:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/548945#M152267</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2019-04-05T20:09:07Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays and Do Loops</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/548986#M152278</link>
      <description>&lt;P&gt;&lt;SPAN&gt;do i=1 to 30;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; if substr(dx(i),1,1)='F' then mental_flag=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; else if substr(dx(i),1,1) notin ("F","") then mental_flag=0;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;You reset the flag. If it was already set, so diag1 = F10 and diag2=A30 what happens?&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;So first diagnosis you set mental_flag=1 and second diagnosis you reset it back to zero. Remove the ELSE statements is all you need to do.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I suspect your log is also flagging NOTIN as a problem as well.&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/186202"&gt;@joe66&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Hi all,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I would like to select the patients with mental health diagnosis using ICD10 code. There were up to 30 diagnosis variables for each patient, I will define the patients having mental health diagnosis if the first letter of any 30 diagnosis variables is 'F', but it seems my code resulted in all missing in mental_flag, why?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;array dx(30) diag1-diag30;&lt;BR /&gt;do i=1 to 30;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; if substr(dx(i),1,1)='F' then mental_flag=1;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; else if substr(dx(i),1,1) notin ("F","") then mental_flag=0;&lt;BR /&gt;&amp;nbsp; &amp;nbsp; else if substr(dx(i),1,1) in ("") then mental_flag=.;&lt;BR /&gt;end;&lt;BR /&gt;drop i;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 05 Apr 2019 22:26:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/548986#M152278</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2019-04-05T22:26:15Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays and Do Loops</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/549002#M152284</link>
      <description>&lt;P&gt;Just in case you are still looking for another way:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;array dx(30) diag1-diag30;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;mental_flag=0;&lt;BR /&gt;&lt;SPAN&gt;do i=1 to 30 until (mental_flag=1);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; if dx(i)=:'F' then mental_flag=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;end;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;drop i;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;The search stops, once a code beginning with "F" has been found.&amp;nbsp; Don't forget the colon after the equal sign.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 06 Apr 2019 01:27:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/549002#M152284</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2019-04-06T01:27:12Z</dc:date>
    </item>
    <item>
      <title>Re: Arrays and Do Loops</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/549024#M152292</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/186202"&gt;@joe66&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;Yes, you are right. how to change my code?&lt;BR /&gt;&lt;BR /&gt;Thanks!&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;There are examples at the link that I provided.&lt;/P&gt;</description>
      <pubDate>Sat, 06 Apr 2019 10:39:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Arrays-and-Do-Loops/m-p/549024#M152292</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2019-04-06T10:39:15Z</dc:date>
    </item>
  </channel>
</rss>

