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

 

Hello,

 

I'm preparing the sas base certification but there is a point that I don't understand

 

The question is to give the length of City_Country after the following program is submitted:

 

data work.test;
First = 'Ipswich, England';
City_Country = substr(First,1,7)!!', '!!'England';
run;

 

Apparently the answer is 25, but why is it not 16? (Ipswich+, +England), is there a mistake in the solution?

1 ACCEPTED SOLUTION

Accepted Solutions
PeterClemmensen
Tourmaline | Level 20

As the documentation of the SUBSTR Function says:

 

"In a DATA step, if the SUBSTR (right of 😃 function returns a value to a variable that has not previously been assigned a length, then that variable is given the length of the first argument."

 

Meaning that substr(First,1,7) has the length 16, ', ' has the length 2 and 'England' has the length 7 giving the variable City_Country a total length of 25. 

View solution in original post

3 REPLIES 3
art297
Opal | Level 21

From the documentation ( https://support.sas.com/documentation/cdl/en/lrcon/62955/HTML/default/viewer.htm#a000780367.htm 😞

The concatenation operator (||) concatenates character values.
The results of a concatenation operation are usually stored in
a variable with an assignment statement, as in 
level='grade '||'A' . The length of the resulting variable is
the sum of the lengths of each variable or constant in the
concatenation operation, unless you use a LENGTH or ATTRIB
statement to specify a different length for the new variable.

Thus, the length of first (16) + the lengths of ', ' and 'England'

 

Art, CEO, AnalystFinder.com

 

 

 

 

 

 

PeterClemmensen
Tourmaline | Level 20

As the documentation of the SUBSTR Function says:

 

"In a DATA step, if the SUBSTR (right of 😃 function returns a value to a variable that has not previously been assigned a length, then that variable is given the length of the first argument."

 

Meaning that substr(First,1,7) has the length 16, ', ' has the length 2 and 'England' has the length 7 giving the variable City_Country a total length of 25. 

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
  • 3 replies
  • 3441 views
  • 1 like
  • 3 in conversation