I'm trying to use an array to change my dataset from multiple rows per patient to a single row per patient with many columns. It was working perfectly until I tried adding a second array for another medication type and goofed something up. I'm not seeing what I messed up; need another pair of eyes to take a look. Here's the code I'm using. The error is array subscript out of range, and the log shows that I=11. Please help!!! DATA MEDS ; SET GET_COUNTS ; BY PATIENT_ID ; FORMAT CLINDAMYCIN CEPHALOSPORIN FLOUROQUINOLONE VANCOMYCIN PPI 1. ; RETAIN CLINDAMYCIN CEPHALOSPORIN FLOUROQUINOLONE VANCOMYCIN PPI ; * 1 = YES, 0 = NO ; CLINDAMYCIN = 0 ; CEPHALOSPORIN = 0 ; FLOUROQUINOLONE = 0 ; VANCOMYCIN = 0 ; PPI = 0 ; ARRAY ABX[*] $ 15. ABX1 - ABX10 ; RETAIN ABX1 - ABX10 ; IF FIRST.PATIENT_ID THEN DO I = 1 TO 10 ; ABX[I] = ' ' ; END ; ABX[ABX_COUNT] = ABX_NAME ; DO I = 1 TO 10 ; IF ABX[I] = 'CLINDAMYCIN' THEN CLINDAMYCIN = '1' ; END ; DO I = 1 TO 10 ; IF ABX[I] IN ('CEFUROXIME', 'CEFPROZIL', 'CEFACLOR', 'CEFTRIAXONE', 'CEFOTAXIME' ) THEN CEPHALOSPORIN = '1' ; END ; DO I = 1 TO 10 ; IF ABX[I] IN ('CIPROFLOXACIN', 'LEVOFLOXACIN', 'GATIFLOXACIN', 'MOXIFLOXACIN', 'OFLOXACIN' ) THEN FLOUROQUINOLONE = '1' ; END; DO I = 1 TO 10 ; IF ABX[I] = 'VANCOMYCIN' THEN VANCOMYCIN = '1' ; END ; IF LAST.PATIENT_ID THEN OUTPUT ; KEEP PATIENT_ID AGEGRP GENDER STUDY_GRP ABX_COUNT ABX1 - ABX10 CLINDAMYCIN CEPHALOSPORIN FLOUROQUINOLONE VANCOMYCIN PPI ; RUN ;
... View more