First of all, thank you so much. This is a surprisingly helpful community, especially for someone with zero experience with coding. I posted a part of the example data I spoke about before in case I did a poor job explaining it. This is obviously "dxcombine" instead of "xcombine" but I'm trying to accomplish the same thing. I tried the example you posted, but I'm getting the following error: 581 data have; 582 583 length dxcombine $2000; 584 585 infile datalines dlm="|"; 586 587 input dxcombine $; 588 589 datalines; NOTE: The data set WORK.HAVE has 5 observations and 1 variables. NOTE: DATA statement used (Total process time): real time 0.01 seconds cpu time 0.00 seconds 595 ; 596 597 run; 598 599 data want; 600 601 set have; 602 603 array elements{7,2} $20; 604 605 curr_element=1; 606 607 do while (scan(dxcombine,1," ") ne ""); 608 609 elements{curr_element,1}=scan(dxcombine,1," "); 610 611 elements{curr_element,2}=strip(put(count(dxcombine,scan(dxcombine,1," ")),best.)); 612 613 xcombined=strip(tranwrd(dxcombine,scan(dxcombine,1," "),"")); 614 615 curr_element=curr_element+1; 616 617 end; 618 619 run; ERROR: Array subscript out of range at line 609 column 5. dxcombine=1234 567 1324 8723 56 56 elements1=1234 elements2=1 elements3=1234 elements4=1 elements5=1234 elements6=1 elements7=1234 elements8=1 elements9=1234 elements10=1 elements11=1234 elements12=1 elements13=1234 elements14=1 curr_element=8 xcombined=567 1324 8723 56 56 _ERROR_=1 _N_=2 NOTE: The SAS System stopped processing this step because of errors. NOTE: There were 2 observations read from the data set WORK.HAVE. WARNING: The data set WORK.WANT may be incomplete. When this step was stopped there were 1 observations and 17 variables. WARNING: Data set WORK.WANT was not replaced because this step was stopped. NOTE: DATA statement used (Total process time): real time 0.02 seconds cpu time 0.03 seconds
... View more