You can use the COMPRESS function in SAS to remove specific characters from a string.
This function uses the following basic syntax:
COMPRESS(String, characters to be removed)
where:
- String: The string to analyze
- characters to be removed: One or more specific characters to remove from string
Here are the four most common ways to use this function:
Method 1: Remove All Blank Spaces from String
data new_data;
set original_data;
compressed_string = compress(string_variable);
run;
Method 2:Remove Specific Characters from String
data new_data;
set original_data;
compressed_string = compress(string_variable, '!?@#');
run;
Method 3: Remove All Alphabetical Characters from String
data new_data;
set original_data;
compressed_string = compress(string_variable, '', 'a');
run;
Method 4: Remove All Numeric Values from String
data new_data;
set original_data;
compressed_string = compress(string_variable, '', 'd');
run;
The following examples show how to use each method with the following dataset in SAS:
/*create dataset*/
data original_data;
input name $25.;
datalines;
Andy Lincoln4 Bernard!
Barren Michael55 Smith!
Chad Simpson7 Arnolds?
Derrick Parson2 Henry
Eric Miller2 Johansen!
Frank Giovanni5 Goode
;
run;
/*view dataset*/
proc print data=original_data;
Example 1: Remove All Blank Spaces from String
The following code shows how to remove all blank spaces from each string in the name column:
/*remove blank spaces from each string in name column*/
data new_data;
set original_data;
compressed_name = compress(name);
run;
/*view results*/
proc print data=new_data;
Notice that all blank spaces have been removed from each string in the new column called compressed_name.
Example 2: Remove Specific Characters from String
The following code shows how to remove all question marks and exclamation points from each string in the name column:
/*remove question marks and exclamation points from each string in name column*/
data new_data;
set original_data;
compressed_name = compress(name, '?!');
run;
/*view results*/
proc print data=new_data;
Notice that all question marks and exclamation points have been removed from each string in the new column called compressed_name.
Example 3: Remove All Alphabetical Characters from String
The following code shows how to remove all alphabetical characters from each string in the name column:
/*remove all alphabetical characters from each string in name column*/
data new_data;
set original_data;
compressed_name = compress(name, '', 'a');
run;
/*view results*/
proc print data=new_data;
Notice that all all alphabetical characters have been removed from each string in the new column called compressed_name.
Example 4: Remove All Numeric Values from String
The following code shows how to remove all numeric values from each string in the name column:
/*remove all numeric values from each string in name column*/
data new_data;
set original_data;
compressed_name = compress(name, '', 'd');
run;
/*view results*/
proc print data=new_data;
Notice that all all numeric values have been removed from each string in the new column called compressed_name.
Additional Resources
The following tutorials explain how to perform other common tasks in SAS:
How to Use the SUBSTR Function in SAS
How to Use the FIND Function in SAS
How to Use the COALESCE Function in SAS