BookmarkSubscribeRSS Feed
qinghe
Calcite | Level 5

Hi,

 

I have got the following information in the log:

NOTE: Invalid argument to function YRDIF at line 21 column 18.

NOTE: Invalid second argument to function SUBSTR at line 26 column 9.

NOTE: Invalid second argument to function SUBSTR at line 27 column 9.

The lines 21 to 27 ar as below:

21 age_at_131015 = yrdif(birth_date, '13oct2015'd, 'act/act');

22 if age_at_131015 <5 then age_grp="0-4";

23 else if age_at_131015 <15 then age_grp="5-14";

24 else age_group="15+";

25 if substr(Indigenous_status, 1, 1)="A" or substr(Indigenous_status, 1, 1)="T" then Indig=1;

26 else if substr(compress(Indigenous_status), 1, 4)="NOTA" then Indig=2;

27 else if substr(compress(Indigenous_status), 1, 4)="NOTS" then Indig=9;

 

What I did wrong?

 

Thanks.

 

qinghe

2 REPLIES 2
Reeza
Super User

Most likely you forgot to account for missing values. 

Birth_date is probably missing, and indigineous status is less than 4 characters, or missing, so trying to take a substring of length 4 isn't possible.

 

If you look closer at your log, it will show sample data points and you can verify the value of birth_date and/or indigineous status to verify my guess.

qinghe
Calcite | Level 5

Thanks, Reeza

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

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