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 SQL中CONTAINS运算符的相反操作是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 运算符