<?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: creating dummy variable using HCUP diagnosis and procedure codes with array in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971658#M377377</link>
    <description>&lt;P&gt;Your problem is the IF/THEN/DO block after the first DO loop needs to only be run when the condition was found.&amp;nbsp; Otherwise I will be too large.&lt;/P&gt;
&lt;P&gt;Just add another IF/THEN.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if scdny2016dx then 
 if dx_vars[i] in ('O60', 'O61', 'O62', 'O63', 'O64', 'O65', 'O66', 'O67'
                  ,'O68', 'O69', 'O70', 'O71', 'O72', 'O73', 'O74', 'O75' 
                  ,'O76', 'O77', 'O78', 'O79', 'O80', 'O81', 'O82', 'Z73' 
                  ,'Z38') then do;
/* Flag for delivery diagnosis */
        delivery_flag = 1; 
/* Output valid record */
        output;  
end;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 29 Jul 2025 21:07:25 GMT</pubDate>
    <dc:creator>Tom</dc:creator>
    <dc:date>2025-07-29T21:07:25Z</dc:date>
    <item>
      <title>creating dummy variable using HCUP diagnosis and procedure codes with array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971649#M377374</link>
      <description>&lt;P&gt;Hello, I am trying to write a code to create a dummy variable for delivery admissions using an array for ICD10 codes and Procedure codes but I run into an error "Array subscript out of range at line 172 column 12. None."&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;data scdny2016dx;
    set SCDNY2016;
    /* Initialize flags and variables */
    scdny2016dx = 0;  /* Sickle cell diagnosis flag */
    delivery_flag = 0;  /* Delivery diagnosis flag */
    dxpos = .;  /* Diagnosis position */
    
    /* Array for diagnosis codes */
    array dx_vars {*} I10_DX1-I10_DX25; 
    
    /* Array for procedure codes */
    array pr_vars {*} I10_PR1-I10PR10;  /* Adjust based on how procedure variables are named */
    
    /* Loop through diagnosis variables to check for sickle cell disease */
    do i = 1 to dim(dx_vars);
        if dx_vars[i] in ('D5700', 'D5701', 'D5702', 'D57211', 'D57212', 'D57219', 
                          'D57412', 'D57419', 'D57811', 'D57812', 'D57819', 
                          'D571', 'D5720', 'D5740', 'D5780', 'D57411') then do;
            scdny2016dx = 1;  /* Flag for sickle cell diagnosis */
            dxpos = i; 
            dx = dx_vars[i]; 
            output;  
            leave; 
        end;
    end;
    
    /* Loop through diagnosis codes to check for delivery diagnoses (ICD-10) */
    if dx_vars[i] in ('O60', 'O61', 'O62', 'O63', 'O64', 'O65', 'O66', 'O67', 
                      'O68', 'O69', 'O70', 'O71', 'O72', 'O73', 'O74', 'O75', 
                      'O76', 'O77', 'O78', 'O79', 'O80', 'O81', 'O82', 'Z73', 
                      'Z38') then do;
        delivery_flag = 1;  /* Flag for delivery diagnosis */
        output;  /* Output valid record */
    end;

    /* Loop through procedure codes to check for pregnancy-related deliveries */
    do j = 1 to dim(pr_vars);
        if pr_vars[j] in ('10D07Z3', '10D07Z4', '10D07Z5', '10D07Z6', '10D07Z7', 
                          '10D07Z8', '10D00Z0', '10D00Z1', '10D00Z2', '10E0XZZ', 
                          '0DQR0ZZ', '0HQ9XZZ', '0KQM0ZZ', '0W8NXZZ') then do;
            delivery_flag = 1;  /* Flag for delivery procedure code */
            output;  /* Output valid record */
        end;
    end;

    drop i j;  /* Drop the loop index variables */
run;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="charleenjm_0-1753808372348.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/108620i781D293AAB52AC9F/image-size/medium?v=v2&amp;amp;px=400" role="button" title="charleenjm_0-1753808372348.png" alt="charleenjm_0-1753808372348.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Jul 2025 16:59:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971649#M377374</guid>
      <dc:creator>charleenjm</dc:creator>
      <dc:date>2025-07-29T16:59:56Z</dc:date>
    </item>
    <item>
      <title>Re: creating dummy variable using HCUP diagnosis and procedure codes with array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971650#M377375</link>
      <description>&lt;P&gt;Since the variables are character, you need to use $ in the ARRAY statement. Also Array pr_vars is missing an underscore.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/* Array for diagnosis codes */
    array dx_vars {*} $ I10_DX1-I10_DX25; 
    
    /* Array for procedure codes */
    array pr_vars {*}  $ I10_PR1-I10_PR10; &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Jul 2025 17:16:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971650#M377375</guid>
      <dc:creator>Kathryn_SAS</dc:creator>
      <dc:date>2025-07-29T17:16:21Z</dc:date>
    </item>
    <item>
      <title>Re: creating dummy variable using HCUP diagnosis and procedure codes with array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971652#M377376</link>
      <description>&lt;P&gt;Hello&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/474861"&gt;@charleenjm&lt;/a&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/474861"&gt;@charleenjm&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;... I run into an error "Array subscript out of range at line 172 column 12. ..."&lt;/P&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;This error message occurred because for at least one observation in dataset SCDNY2016 the IF condition in the loop checking for&amp;nbsp;sickle cell disease was never met and hence the LEAVE statement was not executed. As a consequence, the DO loop was left with the &lt;EM&gt;end value&amp;nbsp;plus 1&lt;/EM&gt;&amp;nbsp; in variable &lt;FONT face="courier new,courier"&gt;i&lt;/FONT&gt;, that is &lt;FONT face="courier new,courier"&gt;i=dim(dx_vars)+1=26&lt;/FONT&gt;. Indeed, the log contains "&lt;FONT face="courier new,courier"&gt;i=26&lt;/FONT&gt;" (but it would be easier to find if you posted the log as text, not as a screenshot).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It appears that you forgot the DO-END statement in (what is announced to be) the "loop ... to check for delivery diagnoses", so that no loop is executed here and only the leftover value &lt;FONT face="courier new,courier"&gt;i&lt;/FONT&gt; from the previous DO loop is used. If that value is too large (as explained above), you get the error message when referring to &lt;FONT face="courier new,courier"&gt;dx_vars[i]&lt;/FONT&gt; in the next IF statement. Otherwise, the log might be clean, but the result is likely wrong.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The missing underscore, well spotted by&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13770"&gt;@Kathryn_SAS&lt;/a&gt;, must have caused another error message (but you didn't post the entire log of the DATA step, so we don't see it), while the dollar signs in the array definitions are optional for existing character variables.&lt;/P&gt;</description>
      <pubDate>Tue, 29 Jul 2025 18:05:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971652#M377376</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2025-07-29T18:05:02Z</dc:date>
    </item>
    <item>
      <title>Re: creating dummy variable using HCUP diagnosis and procedure codes with array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971658#M377377</link>
      <description>&lt;P&gt;Your problem is the IF/THEN/DO block after the first DO loop needs to only be run when the condition was found.&amp;nbsp; Otherwise I will be too large.&lt;/P&gt;
&lt;P&gt;Just add another IF/THEN.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if scdny2016dx then 
 if dx_vars[i] in ('O60', 'O61', 'O62', 'O63', 'O64', 'O65', 'O66', 'O67'
                  ,'O68', 'O69', 'O70', 'O71', 'O72', 'O73', 'O74', 'O75' 
                  ,'O76', 'O77', 'O78', 'O79', 'O80', 'O81', 'O82', 'Z73' 
                  ,'Z38') then do;
/* Flag for delivery diagnosis */
        delivery_flag = 1; 
/* Output valid record */
        output;  
end;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 29 Jul 2025 21:07:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971658#M377377</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-07-29T21:07:25Z</dc:date>
    </item>
    <item>
      <title>Re: creating dummy variable using HCUP diagnosis and procedure codes with array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971797#M377389</link>
      <description>&lt;P&gt;Here is a copy of the error message:&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;142  ods listing close;ods html5 (id=saspy_internal) file=stdout options(bitmap_mode='inline') device=svg style=HTMLBlue; ods
142! graphics on / outputfmt=png;
NOTE: Writing HTML5(SASPY_INTERNAL) Body file: STDOUT
143  
144  data scdny2016dx;
145      set SCDNY2016;
146      /* Initialize flags and variables */
147      scdny2016dx = 0;  /* Sickle cell diagnosis flag */
148      delivery_flag = 0;  /* Delivery diagnosis flag */
149      dxpos = .;  /* Diagnosis position */
150  
151      /* Array for diagnosis codes */
152      array dx_vars {*} I10_DX1-I10_DX25;
153  
154      /* Array for procedure codes */
155      array pr_vars {*} I10_PR1-I10_PR14;  /* Adjust based on how procedure variables are named */
156  
157      /* Loop through diagnosis variables to check for sickle cell disease */
158      do i = 1 to dim(dx_vars);
159          if dx_vars[i] in ('D5700', 'D5701', 'D5702', 'D57211', 'D57212', 'D57219',
160                            'D57412', 'D57419', 'D57811', 'D57812', 'D57819',
161                            'D571', 'D5720', 'D5740', 'D5780', 'D57411') then do;
162              scdny2016dx = 1;  /* Flag for sickle cell diagnosis */
163              dxpos = i;  /* Store diagnosis position */
164              dx = dx_vars[i];  /* Store diagnosis code */
165              output;  /* Output valid record */
166              leave;  /* Exit loop after first match */
167          end;
168      end;
169  
170      /* Loop through diagnosis codes to check for pregnancy diagnoses (ICD-10) */
171      /* This loop should no longer reference dx_vars[i] directly */
172          if dx_vars[i] in ('O60', 'O61', 'O62', 'O63', 'O64', 'O65', 'O66', 'O67',
173                        'O68', 'O69', 'O70', 'O71', 'O72', 'O73', 'O74', 'O75',
174                        'O76', 'O77', 'O78', 'O79', 'O80', 'O81', 'O82', 'Z73',
175                        'Z38') then do;
176          delivery_flag = 1;  /* Flag for delivery diagnosis */
177          output;  /* Output valid record */
178      end;
179  
180      /* Loop through procedure codes to check for pregnancy-related deliveries */
181      do j = 1 to dim(pr_vars);
182          if pr_vars[j] in ('10D07Z3', '10D07Z4', '10D07Z5', '10D07Z6', '10D07Z7',
183                            '10D07Z8', '10D00Z0', '10D00Z1', '10D00Z2', '10E0XZZ',
184                            '0DQR0ZZ', '0HQ9XZZ', '0KQM0ZZ', '0W8NXZZ') then do;
185              delivery_flag = 1;  /* Flag for delivery procedure code */
186              output;  /* Output valid record */
187          end;
188      end;
189  
190      drop i j;  /* Drop the loop index variables */
191  run;
ERROR: Array subscript out of range at line 172 column 12.
AGE=46 AGEDAY=. AGEMONTH=. AHOUR=0900 AMONTH=. ANESTH=20 ATYPE=1 AWEEKEND=0 BILLTYPE=0111 BLOOD=0 BWT=. DaysToEvent=. DHOUR=1500
DIED=0 DISP_X=01 DISPUB04=1 DISPUNIFORM=1 DMONTH=. DQTR=. DRG=974 DRG_NoPOA=974 DRGVER=33 DSHOSPID=0001 DXPOA1=Y DXPOA2=Y DXPOA3=Y
DXPOA4=Y DXPOA5=Y DXPOA6=Y DXPOA7=N DXPOA8=Y DXPOA9=N DXPOA10=Y DXPOA11=Y DXPOA12=Y DXPOA13=Y DXPOA14=Y DXPOA15=N DXPOA16=N
DXPOA17=N DXPOA18=Y DXPOA19=X DXPOA20=Y DXPOA21=Y DXPOA22=  DXPOA23=  DXPOA24=  DXPOA25=  DXVER=10 E_POA1=  E_POA2=  E_POA3= 
E_POA4=  E_POA5=  E_POA6=  E_POA7=  E_POA8=  E_POA9=  FEMALE=0 HCUP_ED=1 HCUP_OS=0 HISPANIC=0 HISPANIC_X=2 Homeless=. HOSPST=NY
I10_DX_Admitting=B20 I10_DX1=B20 I10_DX2=J9601 I10_DX3=B59 I10_DX4=R6520 I10_DX5=N170 I10_DX6=A419 I10_DX7=E870 I10_DX8=N183
I10_DX9=K921 I10_DX10=B3781 I10_DX11=F329 I10_DX12=K219 I10_DX13=E785 I10_DX14=E860 I10_DX15=E222 I10_DX16=F4322 I10_DX17=E8342
I10_DX18=I129 I10_DX19=Z8572 I10_DX20=D509 I10_DX21=E872 I10_DX22=  I10_DX23=  I10_DX24=  I10_DX25=  I10_ECAUSE1=  I10_ECAUSE2= 
I10_ECAUSE3=  I10_ECAUSE4=  I10_ECAUSE5=  I10_ECAUSE6=  I10_ECAUSE7=  I10_ECAUSE8=  I10_ECAUSE9=  I10_NDX=21 I10_NECAUSE=0 I10_NPR=4
I10_PR1=5A1945Z I10_PR2=0BH17EZ I10_PR3=0BBD8ZX I10_PR4=0B958ZX I10_PR5=  I10_PR6=  I10_PR7=  I10_PR8=  I10_PR9=  I10_PR10= 
I10_PR11=  I10_PR12=  I10_PR13=  I10_PR14=  I10_PROCTYPE=1 KEY=362016100000001 LOS=40 LOS_X=40 MDC=25 MDC_NoPOA=25 MDNUM1_R=117363
MDNUM2_R=116572 MEDINCSTQ=. OS_TIME=0 PAY1=2 PAY1_X=17 PAY2=. PAY2_X=  PAY3=. PAY3_X=  PAYER1_X=211 PAYER2_X=  PL_CBSA=. PL_NCHS=.
PL_RUCC=. PL_UIC=. PL_UR_CAT4=. POA_Disch_Edit1=0 POA_Disch_Edit2=0 POA_Hosp_Edit1=0 POA_Hosp_Edit2=0 POA_Hosp_Edit3=0
POA_Hosp_Edit3_Value=0.01 PointOfOrigin_X=1 PointOfOriginUB04=1 PRDAY1=. PRDAY2=. PRDAY3=. PRDAY4=. PRDAY5=. PRDAY6=. PRDAY7=.
PRDAY8=. PRDAY9=. PRDAY10=. PRDAY11=. PRDAY12=. PRDAY13=. PRDAY14=. PRVER=10 PSTATE=NY PSTCO=. PSTCO2=. RACE=2 RACE_X=02
TOTCHG=356997 TOTCHG_X=356997 TRAN_IN=0 TRAN_OUT=0 VisitLink=. YEAR=2016 ZIP=  ZIP3=  ZIPINC_QRTL=. AYEAR=. BMONTH=. BYEAR=.
PRMONTH1=. PRMONTH2=. PRMONTH3=. PRMONTH4=. PRMONTH5=. PRMONTH6=. PRMONTH7=. PRMONTH8=. PRMONTH9=. PRMONTH10=. PRMONTH11=.
PRMONTH12=. PRMONTH13=. PRMONTH14=. PRYEAR1=. PRYEAR2=. PRYEAR3=. PRYEAR4=. PRYEAR5=. PRYEAR6=. PRYEAR7=. PRYEAR8=. PRYEAR9=.
PRYEAR10=. PRYEAR11=. PRYEAR12=. PRYEAR13=. PRYEAR14=. scdny2016dx=0 delivery_flag=0 dxpos=. i=26 dx=  j=. _ERROR_=1 _N_=1
NOTE: The SAS System stopped processing this step because of errors.
NOTE: There were 1 observations read from the data set WORK.SCDNY2016.
WARNING: The data set WORK.SCDNY2016DX may be incomplete.  When this step was stopped there were 0 observations and 212 variables.
WARNING: Data set WORK.SCDNY2016DX was not replaced because this step was stopped.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      
192  
193  ods html5 (id=saspy_internal) close;ods listing;

ERROR: Array subscript out of range at line 172 column 12. None

&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 31 Jul 2025 13:04:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971797#M377389</guid>
      <dc:creator>charleenjm</dc:creator>
      <dc:date>2025-07-31T13:04:24Z</dc:date>
    </item>
    <item>
      <title>Re: creating dummy variable using HCUP diagnosis and procedure codes with array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971798#M377390</link>
      <description>&lt;P&gt;142&amp;nbsp; ods listing close;ods html5 (id=saspy_internal) file=stdout options(bitmap_mode='inline') device=svg style=HTMLBlue; ods&lt;/P&gt;&lt;P&gt;142! graphics on / outputfmt=png;&lt;/P&gt;&lt;P&gt;NOTE: Writing HTML5(SASPY_INTERNAL) Body file: STDOUT&lt;/P&gt;&lt;P&gt;143&amp;nbsp;&lt;/P&gt;&lt;P&gt;144&amp;nbsp; data scdny2016dx;&lt;/P&gt;&lt;P&gt;145&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set SCDNY2016;&lt;/P&gt;&lt;P&gt;146&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Initialize flags and variables */&lt;/P&gt;&lt;P&gt;147&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scdny2016dx = 0;&amp;nbsp; /* Sickle cell diagnosis flag */&lt;/P&gt;&lt;P&gt;148&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delivery_flag = 0;&amp;nbsp; /* Delivery diagnosis flag */&lt;/P&gt;&lt;P&gt;149&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dxpos = .;&amp;nbsp; /* Diagnosis position */&lt;/P&gt;&lt;P&gt;150&amp;nbsp;&lt;/P&gt;&lt;P&gt;151&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Array for diagnosis codes */&lt;/P&gt;&lt;P&gt;152&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array dx_vars {*} I10_DX1-I10_DX25;&lt;/P&gt;&lt;P&gt;153&amp;nbsp;&lt;/P&gt;&lt;P&gt;154&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Array for procedure codes */&lt;/P&gt;&lt;P&gt;155&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array pr_vars {*} I10_PR1-I10_PR14;&amp;nbsp; /* Adjust based on how procedure variables are named */&lt;/P&gt;&lt;P&gt;156&amp;nbsp;&lt;/P&gt;&lt;P&gt;157&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Loop through diagnosis variables to check for sickle cell disease */&lt;/P&gt;&lt;P&gt;158&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i = 1 to dim(dx_vars);&lt;/P&gt;&lt;P&gt;159&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if dx_vars[i] in ('D5700', 'D5701', 'D5702', 'D57211', 'D57212', 'D57219',&lt;/P&gt;&lt;P&gt;160&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'D57412', 'D57419', 'D57811', 'D57812', 'D57819',&lt;/P&gt;&lt;P&gt;161&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'D571', 'D5720', 'D5740', 'D5780', 'D57411') then do;&lt;/P&gt;&lt;P&gt;162&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; scdny2016dx = 1;&amp;nbsp; /* Flag for sickle cell diagnosis */&lt;/P&gt;&lt;P&gt;163&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; dxpos = i;&amp;nbsp; /* Store diagnosis position */&lt;/P&gt;&lt;P&gt;164&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; dx = dx_vars[i];&amp;nbsp; /* Store diagnosis code */&lt;/P&gt;&lt;P&gt;165&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; output;&amp;nbsp; /* Output valid record */&lt;/P&gt;&lt;P&gt;166&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; leave;&amp;nbsp; /* Exit loop after first match */&lt;/P&gt;&lt;P&gt;167&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;168&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;169&amp;nbsp;&lt;/P&gt;&lt;P&gt;170&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Loop through diagnosis codes to check for pregnancy diagnoses (ICD-10) */&lt;/P&gt;&lt;P&gt;171&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* This loop should no longer reference dx_vars[i] directly */&lt;/P&gt;&lt;P&gt;172&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if dx_vars[i] in ('O60', 'O61', 'O62', 'O63', 'O64', 'O65', 'O66', 'O67',&lt;/P&gt;&lt;P&gt;173&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'O68', 'O69', 'O70', 'O71', 'O72', 'O73', 'O74', 'O75',&lt;/P&gt;&lt;P&gt;174&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'O76', 'O77', 'O78', 'O79', 'O80', 'O81', 'O82', 'Z73',&lt;/P&gt;&lt;P&gt;175&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Z38') then do;&lt;/P&gt;&lt;P&gt;176&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delivery_flag = 1;&amp;nbsp; /* Flag for delivery diagnosis */&lt;/P&gt;&lt;P&gt;177&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&amp;nbsp; /* Output valid record */&lt;/P&gt;&lt;P&gt;178&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;179&amp;nbsp;&lt;/P&gt;&lt;P&gt;180&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Loop through procedure codes to check for pregnancy-related deliveries */&lt;/P&gt;&lt;P&gt;181&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do j = 1 to dim(pr_vars);&lt;/P&gt;&lt;P&gt;182&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if pr_vars[j] in ('10D07Z3', '10D07Z4', '10D07Z5', '10D07Z6', '10D07Z7',&lt;/P&gt;&lt;P&gt;183&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '10D07Z8', '10D00Z0', '10D00Z1', '10D00Z2', '10E0XZZ',&lt;/P&gt;&lt;P&gt;184&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; '0DQR0ZZ', '0HQ9XZZ', '0KQM0ZZ', '0W8NXZZ') then do;&lt;/P&gt;&lt;P&gt;185&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; delivery_flag = 1;&amp;nbsp; /* Flag for delivery procedure code */&lt;/P&gt;&lt;P&gt;186&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; output;&amp;nbsp; /* Output valid record */&lt;/P&gt;&lt;P&gt;187&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;188&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;189&amp;nbsp;&lt;/P&gt;&lt;P&gt;190&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; drop i j;&amp;nbsp; /* Drop the loop index variables */&lt;/P&gt;&lt;P&gt;191&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;ERROR: Array subscript out of range at line 172 column 12.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;AGE=46 AGEDAY=. AGEMONTH=. AHOUR=0900 AMONTH=. ANESTH=20 ATYPE=1 AWEEKEND=0 BILLTYPE=0111 BLOOD=0 BWT=. DaysToEvent=. DHOUR=1500&lt;/P&gt;&lt;P&gt;DIED=0 DISP_X=01 DISPUB04=1 DISPUNIFORM=1 DMONTH=. DQTR=. DRG=974 DRG_NoPOA=974 DRGVER=33 DSHOSPID=0001 DXPOA1=Y DXPOA2=Y DXPOA3=Y&lt;/P&gt;&lt;P&gt;DXPOA4=Y DXPOA5=Y DXPOA6=Y DXPOA7=N DXPOA8=Y DXPOA9=N DXPOA10=Y DXPOA11=Y DXPOA12=Y DXPOA13=Y DXPOA14=Y DXPOA15=N DXPOA16=N&lt;/P&gt;&lt;P&gt;DXPOA17=N DXPOA18=Y DXPOA19=X DXPOA20=Y DXPOA21=Y DXPOA22=&amp;nbsp; DXPOA23=&amp;nbsp; DXPOA24=&amp;nbsp; DXPOA25=&amp;nbsp; DXVER=10 E_POA1=&amp;nbsp; E_POA2=&amp;nbsp; E_POA3=&lt;/P&gt;&lt;P&gt;E_POA4=&amp;nbsp; E_POA5=&amp;nbsp; E_POA6=&amp;nbsp; E_POA7=&amp;nbsp; E_POA8=&amp;nbsp; E_POA9=&amp;nbsp; FEMALE=0 HCUP_ED=1 HCUP_OS=0 HISPANIC=0 HISPANIC_X=2 Homeless=. HOSPST=NY&lt;/P&gt;&lt;P&gt;I10_DX_Admitting=B20 I10_DX1=B20 I10_DX2=J9601 I10_DX3=B59 I10_DX4=R6520 I10_DX5=N170 I10_DX6=A419 I10_DX7=E870 I10_DX8=N183&lt;/P&gt;&lt;P&gt;I10_DX9=K921 I10_DX10=B3781 I10_DX11=F329 I10_DX12=K219 I10_DX13=E785 I10_DX14=E860 I10_DX15=E222 I10_DX16=F4322 I10_DX17=E8342&lt;/P&gt;&lt;P&gt;I10_DX18=I129 I10_DX19=Z8572 I10_DX20=D509 I10_DX21=E872 I10_DX22=&amp;nbsp; I10_DX23=&amp;nbsp; I10_DX24=&amp;nbsp; I10_DX25=&amp;nbsp; I10_ECAUSE1=&amp;nbsp; I10_ECAUSE2=&lt;/P&gt;&lt;P&gt;I10_ECAUSE3=&amp;nbsp; I10_ECAUSE4=&amp;nbsp; I10_ECAUSE5=&amp;nbsp; I10_ECAUSE6=&amp;nbsp; I10_ECAUSE7=&amp;nbsp; I10_ECAUSE8=&amp;nbsp; I10_ECAUSE9=&amp;nbsp; I10_NDX=21 I10_NECAUSE=0 I10_NPR=4&lt;/P&gt;&lt;P&gt;I10_PR1=5A1945Z I10_PR2=0BH17EZ I10_PR3=0BBD8ZX I10_PR4=0B958ZX I10_PR5=&amp;nbsp; I10_PR6=&amp;nbsp; I10_PR7=&amp;nbsp; I10_PR8=&amp;nbsp; I10_PR9=&amp;nbsp; I10_PR10=&lt;/P&gt;&lt;P&gt;I10_PR11=&amp;nbsp; I10_PR12=&amp;nbsp; I10_PR13=&amp;nbsp; I10_PR14=&amp;nbsp; I10_PROCTYPE=1 KEY=362016100000001 LOS=40 LOS_X=40 MDC=25 MDC_NoPOA=25 MDNUM1_R=117363&lt;/P&gt;&lt;P&gt;MDNUM2_R=116572 MEDINCSTQ=. OS_TIME=0 PAY1=2 PAY1_X=17 PAY2=. PAY2_X=&amp;nbsp; PAY3=. PAY3_X=&amp;nbsp; PAYER1_X=211 PAYER2_X=&amp;nbsp; PL_CBSA=. PL_NCHS=.&lt;/P&gt;&lt;P&gt;PL_RUCC=. PL_UIC=. PL_UR_CAT4=. POA_Disch_Edit1=0 POA_Disch_Edit2=0 POA_Hosp_Edit1=0 POA_Hosp_Edit2=0 POA_Hosp_Edit3=0&lt;/P&gt;&lt;P&gt;POA_Hosp_Edit3_Value=0.01 PointOfOrigin_X=1 PointOfOriginUB04=1 PRDAY1=. PRDAY2=. PRDAY3=. PRDAY4=. PRDAY5=. PRDAY6=. PRDAY7=.&lt;/P&gt;&lt;P&gt;PRDAY8=. PRDAY9=. PRDAY10=. PRDAY11=. PRDAY12=. PRDAY13=. PRDAY14=. PRVER=10 PSTATE=NY PSTCO=. PSTCO2=. RACE=2 RACE_X=02&lt;/P&gt;&lt;P&gt;TOTCHG=356997 TOTCHG_X=356997 TRAN_IN=0 TRAN_OUT=0 VisitLink=. YEAR=2016 ZIP=&amp;nbsp; ZIP3=&amp;nbsp; ZIPINC_QRTL=. AYEAR=. BMONTH=. BYEAR=.&lt;/P&gt;&lt;P&gt;PRMONTH1=. PRMONTH2=. PRMONTH3=. PRMONTH4=. PRMONTH5=. PRMONTH6=. PRMONTH7=. PRMONTH8=. PRMONTH9=. PRMONTH10=. PRMONTH11=.&lt;/P&gt;&lt;P&gt;PRMONTH12=. PRMONTH13=. PRMONTH14=. PRYEAR1=. PRYEAR2=. PRYEAR3=. PRYEAR4=. PRYEAR5=. PRYEAR6=. PRYEAR7=. PRYEAR8=. PRYEAR9=.&lt;/P&gt;&lt;P&gt;PRYEAR10=. PRYEAR11=. PRYEAR12=. PRYEAR13=. PRYEAR14=. scdny2016dx=0 delivery_flag=0 dxpos=. i=26 dx=&amp;nbsp; j=. _ERROR_=1 _N_=1&lt;/P&gt;&lt;P&gt;NOTE: The SAS System stopped processing this step because of errors.&lt;/P&gt;&lt;P&gt;NOTE: There were 1 observations read from the data set WORK.SCDNY2016.&lt;/P&gt;&lt;P&gt;WARNING: The data set WORK.SCDNY2016DX may be incomplete.&amp;nbsp; When this step was stopped there were 0 observations and 212 variables.&lt;/P&gt;&lt;P&gt;WARNING: Data set WORK.SCDNY2016DX was not replaced because this step was stopped.&lt;/P&gt;&lt;P&gt;NOTE: DATA statement used (Total process time):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; real time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.00 seconds&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;192&amp;nbsp;&lt;/P&gt;&lt;P&gt;193&amp;nbsp; ods html5 (id=saspy_internal) close;ods listing;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ERROR: Array subscript out of range at line 172 column 12. None&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 31 Jul 2025 13:04:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971798#M377390</guid>
      <dc:creator>charleenjm</dc:creator>
      <dc:date>2025-07-31T13:04:55Z</dc:date>
    </item>
    <item>
      <title>Re: creating dummy variable using HCUP diagnosis and procedure codes with array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971800#M377391</link>
      <description>&lt;P&gt;Thank you. This was helpful. Here's the complete log:&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=""&gt;142  ods listing close;ods html5 (id=saspy_internal) file=stdout options(bitmap_mode='inline') device=svg style=HTMLBlue; ods
142! graphics on / outputfmt=png;
NOTE: Writing HTML5(SASPY_INTERNAL) Body file: STDOUT
143  
144  data scdny2016dx;
145      set SCDNY2016;
146      /* Initialize flags and variables */
147      scdny2016dx = 0;  /* Sickle cell diagnosis flag */
148      delivery_flag = 0;  /* Delivery diagnosis flag */
149      dxpos = .;  /* Diagnosis position */
150  
151      /* Array for diagnosis codes */
152      array dx_vars {*} I10_DX1-I10_DX25;
153  
154      /* Array for procedure codes */
155      array pr_vars {*} I10_PR1-I10_PR14;  /* Adjust based on how procedure variables are named */
156  
157      /* Loop through diagnosis variables to check for sickle cell disease */
158      do i = 1 to dim(dx_vars);
159          if dx_vars[i] in ('D5700', 'D5701', 'D5702', 'D57211', 'D57212', 'D57219',
160                            'D57412', 'D57419', 'D57811', 'D57812', 'D57819',
161                            'D571', 'D5720', 'D5740', 'D5780', 'D57411') then do;
162              scdny2016dx = 1;  /* Flag for sickle cell diagnosis */
163              dxpos = i;  /* Store diagnosis position */
164              dx = dx_vars[i];  /* Store diagnosis code */
165              output;  /* Output valid record */
166              leave;  /* Exit loop after first match */
167          end;
168      end;
169  
170      /* Loop through diagnosis codes to check for pregnancy diagnoses (ICD-10) */
171      /* This loop should no longer reference dx_vars[i] directly */
172          if dx_vars[i] in ('O60', 'O61', 'O62', 'O63', 'O64', 'O65', 'O66', 'O67',
173                        'O68', 'O69', 'O70', 'O71', 'O72', 'O73', 'O74', 'O75',
174                        'O76', 'O77', 'O78', 'O79', 'O80', 'O81', 'O82', 'Z73',
175                        'Z38') then do;
176          delivery_flag = 1;  /* Flag for delivery diagnosis */
177          output;  /* Output valid record */
178      end;
179  
180      /* Loop through procedure codes to check for pregnancy-related deliveries */
181      do j = 1 to dim(pr_vars);
182          if pr_vars[j] in ('10D07Z3', '10D07Z4', '10D07Z5', '10D07Z6', '10D07Z7',
183                            '10D07Z8', '10D00Z0', '10D00Z1', '10D00Z2', '10E0XZZ',
184                            '0DQR0ZZ', '0HQ9XZZ', '0KQM0ZZ', '0W8NXZZ') then do;
185              delivery_flag = 1;  /* Flag for delivery procedure code */
186              output;  /* Output valid record */
187          end;
188      end;
189  
190      drop i j;  /* Drop the loop index variables */
191  run;
ERROR: Array subscript out of range at line 172 column 12.
AGE=46 AGEDAY=. AGEMONTH=. AHOUR=0900 AMONTH=. ANESTH=20 ATYPE=1 AWEEKEND=0 BILLTYPE=0111 BLOOD=0 BWT=. DaysToEvent=. DHOUR=1500
DIED=0 DISP_X=01 DISPUB04=1 DISPUNIFORM=1 DMONTH=. DQTR=. DRG=974 DRG_NoPOA=974 DRGVER=33 DSHOSPID=0001 DXPOA1=Y DXPOA2=Y DXPOA3=Y
DXPOA4=Y DXPOA5=Y DXPOA6=Y DXPOA7=N DXPOA8=Y DXPOA9=N DXPOA10=Y DXPOA11=Y DXPOA12=Y DXPOA13=Y DXPOA14=Y DXPOA15=N DXPOA16=N
DXPOA17=N DXPOA18=Y DXPOA19=X DXPOA20=Y DXPOA21=Y DXPOA22=  DXPOA23=  DXPOA24=  DXPOA25=  DXVER=10 E_POA1=  E_POA2=  E_POA3= 
E_POA4=  E_POA5=  E_POA6=  E_POA7=  E_POA8=  E_POA9=  FEMALE=0 HCUP_ED=1 HCUP_OS=0 HISPANIC=0 HISPANIC_X=2 Homeless=. HOSPST=NY
I10_DX_Admitting=B20 I10_DX1=B20 I10_DX2=J9601 I10_DX3=B59 I10_DX4=R6520 I10_DX5=N170 I10_DX6=A419 I10_DX7=E870 I10_DX8=N183
I10_DX9=K921 I10_DX10=B3781 I10_DX11=F329 I10_DX12=K219 I10_DX13=E785 I10_DX14=E860 I10_DX15=E222 I10_DX16=F4322 I10_DX17=E8342
I10_DX18=I129 I10_DX19=Z8572 I10_DX20=D509 I10_DX21=E872 I10_DX22=  I10_DX23=  I10_DX24=  I10_DX25=  I10_ECAUSE1=  I10_ECAUSE2= 
I10_ECAUSE3=  I10_ECAUSE4=  I10_ECAUSE5=  I10_ECAUSE6=  I10_ECAUSE7=  I10_ECAUSE8=  I10_ECAUSE9=  I10_NDX=21 I10_NECAUSE=0 I10_NPR=4
I10_PR1=5A1945Z I10_PR2=0BH17EZ I10_PR3=0BBD8ZX I10_PR4=0B958ZX I10_PR5=  I10_PR6=  I10_PR7=  I10_PR8=  I10_PR9=  I10_PR10= 
I10_PR11=  I10_PR12=  I10_PR13=  I10_PR14=  I10_PROCTYPE=1 KEY=362016100000001 LOS=40 LOS_X=40 MDC=25 MDC_NoPOA=25 MDNUM1_R=117363
MDNUM2_R=116572 MEDINCSTQ=. OS_TIME=0 PAY1=2 PAY1_X=17 PAY2=. PAY2_X=  PAY3=. PAY3_X=  PAYER1_X=211 PAYER2_X=  PL_CBSA=. PL_NCHS=.
PL_RUCC=. PL_UIC=. PL_UR_CAT4=. POA_Disch_Edit1=0 POA_Disch_Edit2=0 POA_Hosp_Edit1=0 POA_Hosp_Edit2=0 POA_Hosp_Edit3=0
POA_Hosp_Edit3_Value=0.01 PointOfOrigin_X=1 PointOfOriginUB04=1 PRDAY1=. PRDAY2=. PRDAY3=. PRDAY4=. PRDAY5=. PRDAY6=. PRDAY7=.
PRDAY8=. PRDAY9=. PRDAY10=. PRDAY11=. PRDAY12=. PRDAY13=. PRDAY14=. PRVER=10 PSTATE=NY PSTCO=. PSTCO2=. RACE=2 RACE_X=02
TOTCHG=356997 TOTCHG_X=356997 TRAN_IN=0 TRAN_OUT=0 VisitLink=. YEAR=2016 ZIP=  ZIP3=  ZIPINC_QRTL=. AYEAR=. BMONTH=. BYEAR=.
PRMONTH1=. PRMONTH2=. PRMONTH3=. PRMONTH4=. PRMONTH5=. PRMONTH6=. PRMONTH7=. PRMONTH8=. PRMONTH9=. PRMONTH10=. PRMONTH11=.
PRMONTH12=. PRMONTH13=. PRMONTH14=. PRYEAR1=. PRYEAR2=. PRYEAR3=. PRYEAR4=. PRYEAR5=. PRYEAR6=. PRYEAR7=. PRYEAR8=. PRYEAR9=.
PRYEAR10=. PRYEAR11=. PRYEAR12=. PRYEAR13=. PRYEAR14=. scdny2016dx=0 delivery_flag=0 dxpos=. i=26 dx=  j=. _ERROR_=1 _N_=1
NOTE: The SAS System stopped processing this step because of errors.
NOTE: There were 1 observations read from the data set WORK.SCDNY2016.
WARNING: The data set WORK.SCDNY2016DX may be incomplete.  When this step was stopped there were 0 observations and 212 variables.
WARNING: Data set WORK.SCDNY2016DX was not replaced because this step was stopped.
NOTE: DATA statement used (Total process time):
      real time           0.00 seconds
      cpu time            0.00 seconds
      
192  
193  ods html5 (id=saspy_internal) close;ods listing;

ERROR: Array subscript out of range at line 172 column 12. None

&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 31 Jul 2025 13:07:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971800#M377391</guid>
      <dc:creator>charleenjm</dc:creator>
      <dc:date>2025-07-31T13:07:00Z</dc:date>
    </item>
    <item>
      <title>Re: creating dummy variable using HCUP diagnosis and procedure codes with array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971801#M377392</link>
      <description>&lt;P&gt;Can you try adding the $ to your ARRAY statements as I mentioned in my previous post:&lt;/P&gt;
&lt;PRE class="language-sas"&gt;&lt;CODE&gt;/* Array for diagnosis codes */
    array dx_vars {*} $ I10_DX1-I10_DX25; 
    
    /* Array for procedure codes */
    array pr_vars {*}  $ I10_PR1-I10_PR10; &lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 31 Jul 2025 13:12:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971801#M377392</guid>
      <dc:creator>Kathryn_SAS</dc:creator>
      <dc:date>2025-07-31T13:12:58Z</dc:date>
    </item>
    <item>
      <title>Re: creating dummy variable using HCUP diagnosis and procedure codes with array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971802#M377393</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13770"&gt;@Kathryn_SAS&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Can you try adding the $ to your ARRAY statements as I mentioned in my previous post:&lt;/P&gt;
&lt;PRE class="language-sas"&gt;&lt;CODE&gt;/* Array for diagnosis codes */
    array dx_vars {*} $ I10_DX1-I10_DX25; 
    
    /* Array for procedure codes */
    array pr_vars {*}  $ I10_PR1-I10_PR10; &lt;/CODE&gt;&lt;/PRE&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Adding the $ will not do anything if the variables mentioned already exist.&lt;/P&gt;
&lt;P&gt;And if they do not exist then you probably would also want to include the LENGTH so that the data step compiler knows what length to use when making the variables.&amp;nbsp; Otherwise it will make them with length of $8 .&lt;/P&gt;</description>
      <pubDate>Thu, 31 Jul 2025 13:22:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971802#M377393</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-07-31T13:22:47Z</dc:date>
    </item>
    <item>
      <title>Re: creating dummy variable using HCUP diagnosis and procedure codes with array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971806#M377394</link>
      <description>&lt;P&gt;Let's demonstrate how to read the SAS log.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You are getting this error:&lt;/P&gt;
&lt;PRE&gt;ERROR: Array subscript out of range at line 172 column 12.&lt;/PRE&gt;
&lt;P&gt;So looking at the log we see that line 172 is part of this statement.&lt;/P&gt;
&lt;PRE&gt;172          if dx_vars[i] in ('O60', 'O61', 'O62', 'O63', 'O64', 'O65', 'O66', 'O67',
173                        'O68', 'O69', 'O70', 'O71', 'O72', 'O73', 'O74', 'O75',
174                        'O76', 'O77', 'O78', 'O79', 'O80', 'O81', 'O82', 'Z73',
175                        'Z38') then do;&lt;/PRE&gt;
&lt;P&gt;The array subscript used there is the variable I.&amp;nbsp; Which from your SAS log had the value:&lt;/P&gt;
&lt;PRE&gt;i=26&lt;/PRE&gt;
&lt;P&gt;But your program defined that array to only have 25 variables in it.&lt;/P&gt;
&lt;PRE&gt;152      array dx_vars {*} I10_DX1-I10_DX25;&lt;/PRE&gt;
&lt;P&gt;As I said before you need to make sure to only use I to index into that array when it is valid.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;if i in (1:25) then 
   if dx_vars[i] in ('O60', 'O61', 'O62', 'O63', 'O64', 'O65', 'O66', 'O67',
                 'O68', 'O69', 'O70', 'O71', 'O72', 'O73', 'O74', 'O75',
                      'O76', 'O77', 'O78', 'O79', 'O80', 'O81', 'O82', 'Z73',
                      'Z38') then do;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 31 Jul 2025 13:30:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971806#M377394</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-07-31T13:30:44Z</dc:date>
    </item>
    <item>
      <title>Re: creating dummy variable using HCUP diagnosis and procedure codes with array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971808#M377395</link>
      <description>&lt;P&gt;Hi Tom! Thank you and super helpful. I'm pretty new to SAS and HCUP so I appreciate it. Will give it a try.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 31 Jul 2025 13:46:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/creating-dummy-variable-using-HCUP-diagnosis-and-procedure-codes/m-p/971808#M377395</guid>
      <dc:creator>charleenjm</dc:creator>
      <dc:date>2025-07-31T13:46:38Z</dc:date>
    </item>
  </channel>
</rss>

