Sas: фільтрувати рядки, що містять рядок
Щоб фільтрувати набори даних SAS для рядків, що містять певні рядки, можна використовувати такі методи:
Спосіб 1. Фільтруйте рядки, що містять певний рядок
/*filter rows where var1 contains "string1"*/
data specific_data;
set original_data;
where var1 contains ' string1 ';
run ;
Спосіб 2. Відфільтрувати рядок, що містить один рядок, серед кількох
/*filter rows where var1 contains "string1", "string2", or "string3"*/
data specific_data;
set original_data;
where var1 in (' string1 ', ' string2 ', ' string3 ');
run ;
У наведених нижче прикладах показано, як використовувати кожен метод із таким набором даних у SAS:
/*create dataset*/
data nba_data;
input team $points;
datalines ;
Mavs 95
Spurs 99
Warriors 104
Rockets 98
Heat 95
Nets 90
Magic 99
Cavs 106
;
run ;
/*view dataset*/
proc print data =nba_data;
Спосіб 1. Фільтруйте рядки, що містять певний рядок
У наведеному нижче коді показано, як фільтрувати набір даних для рядків, які містять рядок «avs» у стовпці team :
/*filter rows where team contains the string 'avs'*/ data specific_data; set nba_data; where team contains ' avs '; run ; /*view resulting rows*/ proc print data = specific_data;
Єдині два показані рядки – це те, де в назві стовпця team є «avs».
Спосіб 2: фільтрування рядків, що містять один із кількох рядків
Наступний код показує, як фільтрувати набір даних для рядків, що містять рядки «Mavs», «Nets» або «Rockets» у стовпці team :
/*filter rows where team contains the string 'Mavs', 'Nets', or 'Rockets'*/ data specific_data; set nba_data; where team in (' Mavs ', ' Nets ', ' Rockets '); run ; /*view resulting rows*/ proc print data = specific_data;
У результуючому наборі даних відображаються лише ті рядки, де стовпець команди містить один із трьох указаних рядків.
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання в SAS:
Як нормалізувати дані в SAS
Як перейменувати змінні в SAS
Як видалити дублікати в SAS
Як замінити пропущені значення на нуль в SAS