<?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 Code out wide data with an array in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Code-out-wide-data-with-an-array/m-p/849554#M335857</link>
    <description>&lt;P&gt;hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp; I have patient registry data that is coded wide with ICD-10 diagnosis codes. It has one patient id per row. I'd like to create two dummy variables from all of the wide code, TBI_injury and Spinal_injury. The codes for TBI_injury all start with the prefix:&amp;nbsp;S02.0, S02.1, S02.9, S06.0-S06.6, S06.8, S06.9, S06.A, S07.1 . The Spinal_cord injury start with the prefix:&amp;nbsp;S14, S24, or S34.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is just an example of 3 fake patients (bold values represent code prefixs for TBI or spine)&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;Studynum:&amp;nbsp; ICD10code_1&amp;nbsp;&amp;nbsp; ICD10code_2&amp;nbsp; ICD10code_3&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;STRONG&gt;S02.028A&amp;nbsp;&lt;/STRONG&gt; &amp;nbsp;&amp;nbsp;S00.03XA&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; S06.5X9A&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;STRONG&gt;S14.5X9A&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;S00.83XA&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;S22.028A&amp;nbsp;&lt;/P&gt;&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;STRONG&gt;S06.5X9A&amp;nbsp;&lt;/STRONG&gt; &amp;nbsp; &amp;nbsp;S61.412A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;STRONG&gt;S34.5X9A&amp;nbsp;&lt;/STRONG&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data want:&lt;/P&gt;&lt;P&gt;Studynum:&amp;nbsp; ICD10code_1&amp;nbsp;&amp;nbsp; ICD10code_2&amp;nbsp; ICD10code_3&amp;nbsp; &amp;nbsp; TBI_injury&amp;nbsp; &amp;nbsp;Spinal_injury&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;STRONG&gt;&amp;nbsp;S02.028A&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;S00.03XA&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; S06.5X9A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;STRONG&gt;S14.5X9A&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;S00.83XA&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;S22.028A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;STRONG&gt;S06.5X9A&amp;nbsp; &amp;nbsp;&lt;/STRONG&gt; &amp;nbsp;S61.412A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;STRONG&gt;S34.5X9A&amp;nbsp; &amp;nbsp;&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/P&gt;</description>
    <pubDate>Tue, 13 Dec 2022 23:17:11 GMT</pubDate>
    <dc:creator>stancemcgraw</dc:creator>
    <dc:date>2022-12-13T23:17:11Z</dc:date>
    <item>
      <title>Code out wide data with an array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Code-out-wide-data-with-an-array/m-p/849554#M335857</link>
      <description>&lt;P&gt;hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp; I have patient registry data that is coded wide with ICD-10 diagnosis codes. It has one patient id per row. I'd like to create two dummy variables from all of the wide code, TBI_injury and Spinal_injury. The codes for TBI_injury all start with the prefix:&amp;nbsp;S02.0, S02.1, S02.9, S06.0-S06.6, S06.8, S06.9, S06.A, S07.1 . The Spinal_cord injury start with the prefix:&amp;nbsp;S14, S24, or S34.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Here is just an example of 3 fake patients (bold values represent code prefixs for TBI or spine)&lt;/P&gt;&lt;P&gt;data have;&lt;/P&gt;&lt;P&gt;Studynum:&amp;nbsp; ICD10code_1&amp;nbsp;&amp;nbsp; ICD10code_2&amp;nbsp; ICD10code_3&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;STRONG&gt;S02.028A&amp;nbsp;&lt;/STRONG&gt; &amp;nbsp;&amp;nbsp;S00.03XA&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; S06.5X9A&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;STRONG&gt;S14.5X9A&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;S00.83XA&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;S22.028A&amp;nbsp;&lt;/P&gt;&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;STRONG&gt;S06.5X9A&amp;nbsp;&lt;/STRONG&gt; &amp;nbsp; &amp;nbsp;S61.412A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;STRONG&gt;S34.5X9A&amp;nbsp;&lt;/STRONG&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data want:&lt;/P&gt;&lt;P&gt;Studynum:&amp;nbsp; ICD10code_1&amp;nbsp;&amp;nbsp; ICD10code_2&amp;nbsp; ICD10code_3&amp;nbsp; &amp;nbsp; TBI_injury&amp;nbsp; &amp;nbsp;Spinal_injury&lt;/P&gt;&lt;P&gt;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;STRONG&gt;&amp;nbsp;S02.028A&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;S00.03XA&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; S06.5X9A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/P&gt;&lt;P&gt;2&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;STRONG&gt;S14.5X9A&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;S00.83XA&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;S22.028A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;3&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;STRONG&gt;S06.5X9A&amp;nbsp; &amp;nbsp;&lt;/STRONG&gt; &amp;nbsp;S61.412A&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;STRONG&gt;S34.5X9A&amp;nbsp; &amp;nbsp;&lt;/STRONG&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&lt;/P&gt;</description>
      <pubDate>Tue, 13 Dec 2022 23:17:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Code-out-wide-data-with-an-array/m-p/849554#M335857</guid>
      <dc:creator>stancemcgraw</dc:creator>
      <dc:date>2022-12-13T23:17:11Z</dc:date>
    </item>
    <item>
      <title>Re: Code out wide data with an array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Code-out-wide-data-with-an-array/m-p/849558#M335859</link>
      <description>&lt;P&gt;you may find this paper useful. make an array of the ICD codes and then loop over them.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="https://www.sas.com/content/dam/SAS/support/en/sas-global-forum-proceedings/2019/3117-2019.pdf" target="_blank"&gt;https://www.sas.com/content/dam/SAS/support/en/sas-global-forum-proceedings/2019/3117-2019.pdf&lt;/A&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data example;
input studynum icd10code_1 $ icd10code_2 $ icd10code_3 $;
datalines;
1 S02.028A S00.03XA S06.5X9A
2 S14.5X9A S00.83XA S22.028A
3 S06.5X9A S61.412A S34.5X9A
;
proc print;
run;

data two;
   set example;
   spinal_injury=0; /*initialize to 0*/;
   tbi_injury=0; /*initialize to 0*/;
   array diagvar $ icd10code_1-icd10code_3;
   do over diagvar;
      if diagvar in: ("S14","S24","S34") then spinal_injury=1;
      
      if ("S06.0" &amp;lt;=: diagvar &amp;lt;=: "S06.6") or (diagvar in: ("S02.0","S02.1","S02.9",
      "S06.8","S06.9","S06.A","S07.1")) then tbi_injury=1;
   end;
proc print;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The above code achieves your desired results.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="tarheel13_1-1670978573273.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/78477i55B49DAF8A56C962/image-size/medium?v=v2&amp;amp;px=400" role="button" title="tarheel13_1-1670978573273.png" alt="tarheel13_1-1670978573273.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 14 Dec 2022 00:43:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Code-out-wide-data-with-an-array/m-p/849558#M335859</guid>
      <dc:creator>tarheel13</dc:creator>
      <dc:date>2022-12-14T00:43:00Z</dc:date>
    </item>
  </channel>
</rss>

