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-2026-white.png



April 27 – 30 | Gaylord Texan | Grapevine, Texas

Registration is open

Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and save with the early bird rate—just $795!

Register now

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
  • 1819 views
  • 0 likes
  • 2 in conversation