Hi guys,
I want to add particular number of white spaces in a string.
Like suppose we have string "MESSAGE" .
I want X number of spaces after 4th character of "MESSAGE" then how can i do the same.
Output should be like "MESS AGE" => X spaces between MESS and AGE.
Thanks in advance.
Do something like this
data test;
string="MESSAGE";
newstring=cat(substr(string, 1, 4), ' ', substr(string, 5) );
run;
You can avoid typing 4 spaces manually with repeat:
Data Want;
Format string $20.;
string="MESSAGE";
Substr(string, 5) = Repeat(' ', 3) || Substr(string, 5);
Run;
%macro InsertSpace(location=,no_spaces=)
Data Want;
set Have;
/*Assuming the Variable opt for Transformation is string
and it have enough length to contain the spaces
*/
Substr(string, &location.) = Repeat(' ', &no_spaces.) || Substr(string, &location.);
Run;
%mend InsertSpace;
%InsertSpace(location=5,no_spaces=3);
@user24feb This is little modification to your code.
Hi,
Data want;
Format string $20.;
string="Message";
substr(string,5)=repeat(' ',3) || substr(string,5);
run;
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.