Sas:如何在 proc sql 中使用 contains


您可以在 SAS 的SQL PROC语句中使用CONTAINS运算符,以仅返回数据集中的变量包含字符串模式的行。

以下示例展示了如何在实践中将CONTAINS运算符与 SAS 中包含有关各种篮球运动员信息的以下数据集一起使用:

 /*create dataset*/
data my_data;
    input team $points;
    datalines ;
Cavs 12
Cavs 14
Warriors 15
Hawks 18
Mavs 31
Mavs 32
Mavs 35
Celtics 36
Celtics 40
;
run ;

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

示例 1:选择变量包含模式的行

我们可以在PROC SQL中使用CONTAINS运算符来仅选择名称中某处包含“avs”模式的行:

 /*select all rows where team contains 'avs'*/ 
proc sql ;
   select *
   from my_data
   where team contains 'avs';
quit ; 

请注意,仅返回团队名称中某处包含“avs”的行。

示例 2:选择变量包含多种模式之一的行

我们可以在PROC SQL中使用CONTAINS运算符来仅选择名称中某处包含“avs”模式“ics”模式的行:

 /*select all rows where team contains 'avs' or 'ics'*/ 
proc sql ;
   select *
   from my_data
   where team contains 'avs' or team contains 'ics';
quit ; 

仅返回团队名称中某处包含“avs”“ics”的行。

示例 3:选择变量不包含模式的行

PROC SQLCONTAINS运算符的相反操作是NOT CONTAINS ,它选择数据集中某些变量包含特定字符串模式的行。

以下代码显示如何使用NOT CONTAINS运算符选择团队名称不包含“avs”的所有行:

 /*select all rows where team does not contain 'avs'*/
proc sql ;
   select *
   from my_data
   where team not contains 'avs';
quit ; 

请注意,仅返回团队名称中不包含“avs”的行。

其他资源

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

SAS:如何在 PROC SQL 中使用 UNION
SAS:如何在 PROC SQL 中使用 EXCEPT
SAS:如何在 PROC SQL 中使用 IN 运算符
SAS:如何在 PROC SQL 中使用 WHERE 运算符

添加评论

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