Sas: как использовать contains в proc sql


Вы можете использовать оператор CONTAINS в инструкции SQL PROC в SAS, чтобы возвращать только те строки, в которых переменная в наборе данных содержит строковый шаблон.

В следующих примерах показано, как на практике использовать оператор 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: выберите строки, в которых переменная содержит шаблон

Мы можем использовать оператор CONTAINS в PROC SQL , чтобы выбирать только те строки, где команда содержит шаблон «avs» где-то в имени:

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

Обратите внимание, что возвращаются только те строки, где где-то в имени команды содержится слово «avs».

Пример 2. Выберите строки, в которых переменная содержит один из нескольких шаблонов.

Мы можем использовать оператор CONTAINS в PROC SQL , чтобы выбрать только те строки, где команда содержит шаблон «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: выберите строки, в которых переменная не содержит шаблона

Противоположностью оператора CONTAINS в PROC SQL является оператор 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: как использовать UNION в PROC SQL
SAS: как использовать EXCEPT в PROC SQL
SAS: как использовать оператор IN в PROC SQL
SAS: как использовать оператор WHERE в PROC SQL

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *