Sas中如何从字符串中提取数字


在 SAS 中从字符串中提取数字的最简单方法是使用带有“A”修饰符的COMPRESS函数。

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

 data new_data;
    set original_data;
    numbers_only = compress(some_string, '', ' A ');
run ;

以下示例展示了如何在实践中使用此语法。

示例:从 SAS 中的字符串中提取数字

假设我们在 SAS 中有以下数据集,其中显示了各种大学课程的名称:

 /*create dataset*/
data original_data;
    input course $12.;
    datalines ;
Stats101
Economics203
Business201
Botany411
Calculus101
English201
Chemistry402
Physics102
;
run ;

/*view dataset*/
proc print data = original_data; 

我们可以使用以下代码从每个课程名称中提取数字:

 /*extract numbers from course column*/
data new_data;
    set original_data;
    course_number_only = compress (course, '', ' A ');
run ;

/*view results*/
proc print data = new_data; 

请注意,名为course_number_only的新列仅包含course列中字符串中的数字。

如果您只想从每个字符串中提取字符,则可以使用带有 ‘d’ 修饰符的COMPRESS函数:

 /*extract characters from course column*/
data new_data;
    set original_data;
    course_characters_only = compress (course, '', ' d ');
run ;

/*view results*/
proc print data = new_data; 

请注意,名为course_characters_only的新列仅包含课程列中字符串中的数字。

注意:您可以在此SAS 文档页面上找到COMPRESS函数的修饰符的完整列表。

其他资源

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

如何标准化 SAS 中的数据
如何识别 SAS 中的异常值
如何在SAS中创建频率表

添加评论

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