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;
It's finally time to hack! Remember to visit the SAS Hacker's Hub regularly for news and updates.
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.
Ready to level-up your skills? Choose your own adventure.