在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函数的完整修改器列表。