The easiest way to remove leading zeros in a character variable in SAS is to use the INPUT function to convert the variable to a numeric variable, which automatically removes leading zeros.
This function uses the following basic syntax:
data new_data;
set original_data;
no_zeros = input(some_column, comma9.);
run;
The following example shows how to use this syntax in practice.
Example: Remove Leading Zeros in SAS
Suppose we have the following dataset in SAS that shows the total sales made by various retail stores:
/*create dataset*/
data original_data;
input store $ sales $;
datalines;
A 055
B 145
C 199
D 0000443
E 0093
F 00004302
G 38
H 0055
;
run;
/*view dataset*/
proc print data=original_data;
We can use the following code to remove all leading zeros from values in the sales column:
/*remove leading zeros in sales column*/
data new_data;
set original_data;
no_zeros = input(sales, comma9.);
run;
/*view results*/
proc print data=new_data;
Notice that all leading zeros have been removed from the values in the no_zeros column.
Note that the new no_zeros column is a numeric column.
If you would instead like to keep it as a character column, you can wrap the PUT function around the INPUT function as follows:
/*remove leading zeros in sales column*/
data new_data;
set original_data;
no_zeros = put(input(sales, comma9.), 8.);
run;
/*view results*/
proc print data=new_data;
If we use use proc contents to view the data type of each variable in the dataset, we’ll see that no_zeros is a character variable:
/*view data type of each variable in new dataset*/
proc contents data=new_data;
Additional Resources
The following tutorials explain how to perform other common tasks in SAS: