BookmarkSubscribeRSS Feed
deega
Quartz | Level 8

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.

3 REPLIES 3
Reeza
Super User

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%';
Ksharp
Super User

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;


Jagadishkatam
Amethyst | Level 16

alternatively with perl regular expression

 

if prxmatch('m/(AB)/',process) then delete;
Thanks,
Jag
How to Concatenate Values

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 1414 views
  • 0 likes
  • 4 in conversation