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.
Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.
Register today!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.