DATA Step, Macro, Functions and more

length of the output of the substr function

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 5
Accepted Solution

length of the output of the substr function

 

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?


Accepted Solutions
Solution
‎02-11-2018 10:34 AM
PROC Star
Posts: 1,215

Re: length of the output of the substr function

Posted in reply to prehendere

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


All Replies
PROC Star
Posts: 8,149

Re: length of the output of the substr function

Posted in reply to prehendere

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

 

 

 

 

 

 

Solution
‎02-11-2018 10:34 AM
PROC Star
Posts: 1,215

Re: length of the output of the substr function

Posted in reply to prehendere

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. 

Occasional Contributor
Posts: 5

Re: length of the output of the substr function

thank you!
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 140 views
  • 1 like
  • 3 in conversation