如何使用sas中的compress函数(附示例)


您可以使用 SAS 中的COMPRESS函数从字符串中删除特定字符。

该函数使用以下基本语法:

COMPRESS(字符串,要删除的字符)

金子:

  • String : 要解析的字符串
  • 要删除的字符:要从字符串中删除的一个或多个特定字符

以下是使用此功能的四种最常见方法:

方法一:删除字符串中的所有空格

 data new_data;
    set original_data;
    compressed_string = compress (string_variable);
run ;

方法2:从字符串中删除特定字符

 data new_data;
    set original_data;
    compressed_string = compress (string_variable, ' !?@# ');
run ;

方法 3:从字符串中删除所有字母字符

 data new_data;
    set original_data;
    compressed_string = compress (string_variable, '', ' a ');
run ;

方法4:删除字符串中的所有数值

 data new_data;
    set original_data;
    compressed_string = compress (string_variable, '', ' d ');
run ;

以下示例展示了如何在 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; 

示例 1:删除字符串中的所有空格

以下代码显示如何删除名称列中每个字符串中的所有空格:

 /*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;

请注意,名为tablet_name 的新列中的每个字符串中的所有空格均已删除。

示例 2:从字符串中删除特定字符

以下代码显示如何从名称列中的每个字符串中删除所有问号和感叹号:

 /*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;

请注意,所有问号和感叹号已从名为tablet_name的新列中的每个字符串中删除。

示例 3:从字符串中删除所有字母字符

以下代码显示如何从名称列中的每个字符串中删除所有字母字符:

 /*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;

请注意,所有字母字符均已从名为tablet_name的新列中的每个字符串中删除。

示例4:从字符串中删除所有数值

以下代码展示了如何从名称列中的每个字符串中删除所有数值:

 /*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;

请注意,所有数值均已从名为tablet_name的新列中的每个字符串中删除。

其他资源

以下教程解释了如何在 SAS 中执行其他常见任务:

SAS中SUBSTR函数的使用方法
如何使用SAS中的FIND函数
SAS中COALESCE函数的使用方法

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注