如何在SAS中从字符串中提取数字

1,250 阅读1分钟

在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的新列只包含课程列中字符串的数字。

如果你想只提取每个字符串中的字符,你可以使用带有'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函数的完整修改器列表。