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;
Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.
Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.
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.