BookmarkSubscribeRSS Feed
deleted_user
Not applicable
Any idea what is wrong with this code?

array region{22} region_1 - region_22;
array ais{22} ais_1 - ais_22;
array trhead{22} trhead1-trhead22;
do i = 1 to dim(ais) ;
if region(i)='HEAD' then do trhead(i)=ais(i); end;
-
73
ERROR: The variable type of trhead is invalid in this context.
ERROR: Illegal reference to the array trhead.
ERROR 73-322: Expecting an =.

325 end;
5 REPLIES 5
darrylovia
Quartz | Level 8
My first guess would be that the array region is defined as numeric.

replace array region{22} region_1 - region_22;
array region{22} $ region_1 - region_22;

See what happens.

-Darryl
deleted_user
Not applicable
Good idea, but it didn't help.


448 array region{22} $ region_1 - region_22;
449 array ais{22} ais_1 - ais_22;
450 array trhead{22} trhead1-trhead22;
451 do i = 1 to 22 ;
452 if region(i)='HEAD' then do trhead(i)=ais(i); end;
-
73
ERROR: The variable type of trhead is invalid in this context.
ERROR: Illegal reference to the array trhead.
ERROR 73-322: Expecting an =.

453 end;
darrylovia
Quartz | Level 8
I think I meant trhead but try to define them all as character

-Darryl
deleted_user
Not applicable
The second ones should be numeric, but it still isn't working. Thanks for your help. I'm calling tech support.

513 array region{22} $ region_1 - region_22;
514 array ais{22} $ ais_1 - ais_22;
515 array trhead{22} $ trhead1-trhead22;
516 do i = 1 to 22 ;
517 if region(i)='HEAD' then do trhead(i)=ais(i); end;
-
73
ERROR: The variable type of trhead is invalid in this context.
ERROR: Illegal reference to the array trhead.
ERROR 73-322: Expecting an =.

518 end;
darrylovia
Quartz | Level 8
You need a semi-colon after the do

replace if region(i)='HEAD' then do trhead(i)=ais(i); end;
with
if region(i)='HEAD' then do; trhead(i)=ais(i); end;

-Darryl

SAS Innovate 2025: Save the Date

 SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!

Save the date!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 5 replies
  • 3313 views
  • 0 likes
  • 2 in conversation