BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
jcis7
Pyrite | Level 9

Hello,

I'm getting teh folloiwng error: Invalid third argument to function SUBSTR

The variable cdcode is text and 14 characters long.

Here's my code:


data new;

     set old;

     length co $2 dist $5 sch $7;

     co=substr(cdcode, 1,2);

     dist=substr(cdcode, 3,7);

     sch=substr(cdcode,8,14);

run;

Can you help me understand why I'm getting this message?

Thanks!

1 ACCEPTED SOLUTION

Accepted Solutions
Doc_Duke
Rhodochrosite | Level 12

RTFM.  Your code should read

sch=substr(cdcode,8,7);

View solution in original post

4 REPLIES 4
Doc_Duke
Rhodochrosite | Level 12

RTFM.  Your code should read

sch=substr(cdcode,8,7);
jcis7
Pyrite | Level 9

Thank you!  Is it because it's the last part of the cdcode that it's 7 instead of 14? 

Doc_Duke
Rhodochrosite | Level 12

from the reference manual

"Interaction:If length is zero, a negative value, or larger than the length of the expression that remains in string after position, SAS extracts the remainder of the expression. SAS also sets _ERROR_ to 1 and prints a note to the log indicating that the length argument is invalid."

jcis7
Pyrite | Level 9

Thank you!!

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


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
  • 4 replies
  • 23253 views
  • 5 likes
  • 2 in conversation