You cannot remove trailing blanks from character variables, as they are always padded with blanks to the defined length.
SAS character variables are fixed length (type CHAR). If you just use $ without a length specification in your input statement then the variable will become character with a length of 8.
As it's fixed length there are always trailing blanks unless your string is already 8 characters.
So: Removing trailing blanks is not possible but if you just want to know how long your strings actually are then you can use the length() or lengthn() function.
data have;
input result $;
lenOfString=length(result);
datalines;
Abc
Def
Hjkkk
Lkhhhh
;
proc print;
run;
Building upon Kurt's and Patrick's responses. The below code shows what they have said. Now you can compare lenOfString and columnLengthOf_result to see when strip() does something.
data have;
input result $;
retain columnLengthOf_result 0;
if _n_=1 then columnLengthOf_result=vlength(result);
lenOfString=length(result);
Original_result='(' || result || ')';
Stripped_result='(' || strip(result) ||')';
datalines;
Abc
Def
Hjkkk
Lkhhhh
;;;;
Please describe what you are doing that "trailing blanks" is causing problems or affecting your analysis.
Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!
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.