I have a dataset like below
No Process
1 AB C
2 AB D
3 XYZ
4 YYY
5 AB C
6 XYZ
7 DE F
8 AB D
9 AB D
10 YYY
I want to find the values that does not contain AB* as follows using arrays.
No Process
3 XYZ
4 YYY
6 XYZ
7 DE F
10 YYY
Please advise.
Where do arrays come into the process?
It should be a single filter, either a WHERE or IF statement.
if indexw( process, 'AB') > 0 then keep;
or
WHERE process like '%AB%';
data have; input No Process $; cards; 1 AB C 2 AB D 3 XYZ 4 YYY 5 AB C 6 XYZ 7 DE F 8 AB D 9 AB D 10 YYY ; run; data want; set have; if upcase(process) =: 'AB' then delete; run;
alternatively with perl regular expression
if prxmatch('m/(AB)/',process) then delete;
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.