What length did you expect that the SAS would use to create the variable CITY ? It makes it length $16 since the variable FIRST was defaulted to $16 based on the length of the string literal first assigned to it. Hence there are 11 spaces at the end of the variable after the 7 that you populated with the SUBSTR() function call. Use CATS or CATX function instead to have SAS strip the spaces off the end of the variable. data test2; first = 'Ipswich, England'; city = substr(first,1,7); city_country = city||', '||'England'; fix = catx(', ',city,'England'; put (_all_) (/ $quote.); run; "Ipswich, England" "Ipswich" "Ipswich , England" "Ipswich, England" NOTE: The data set WORK.TEST2 has 1 observations and 4 variables.
... View more