BookmarkSubscribeRSS Feed
deleted_user
Not applicable
Hi

I am new to SAS, so please bear with me. I am trying to use an array to split a 240 character field of death codes into 48 new variables, each with a width of 5 characters .... with a starting position that moves from 1, 6, 11, 16, 21 etc. Alas, my syntax below keeps succumbing to the error message "The array subscript is out of range":

data b;
set a;
array split(48) $ entity1 - entity48;
do i = 1-48;
j = ((i-1)*5)+1;
split(i) = substr(entity_axis_data,j,5);
end;
run;

Any pearls of wisdom would be appreciated immensely.

Janine
2 REPLIES 2
advoss
Quartz | Level 8
Try this:

data b;
set a;
length entity1 - entity48 $5;
array split(48) entity1 - entity48;
do i = 1 to 48;
j = ((i-1)*5)+1;
split(i) = substr(entity_axis_data,j,5);
end;
run;
deleted_user
Not applicable
Ripper! It worked a treat. Many thanks Advoss.

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Health and Life Sciences Learning

 

Need courses to help you with SAS Life Sciences Analytics Framework, SAS Health Cohort Builder, or other topics? Check out the Health and Life Sciences learning path for all of the offerings.

LEARN MORE

Discussion stats
  • 2 replies
  • 1397 views
  • 0 likes
  • 2 in conversation