BookmarkSubscribeRSS Feed

Hi, how do I create an INLIST pn an IF FIND?



7 REPLIES 7
RW9
Diamond | Level 26 RW9
Diamond | Level 26

What does posting_cat_2 look like.  Post your test data in the form of a datastep so that we can see what you see and assess the best way to achieve this.  If that variable just contains a, b, or c then:

select(posting_cat_2);

  when ('a') ...

...

 

If it contains more, then what happens if more than one appear in the string?  Is there a defining pattern which can identify these uniquely?

 

You may find it simpler to do a quick loop:

do i=1 to lengthn(posting_cat_2);
  if char(posting_cat_2,i) in ('a','b',...) then perf='3) >=...';
end;
 
RW9
Diamond | Level 26 RW9
Diamond | Level 26

Then the simplest way is:

if char(posting_cat_2,1) in ("a","b"...) then ...;

 

Kurt_Bremser
Super User

@RW9 wrote:

Then the simplest way is:

if char(posting_cat_2,1) in ("a","b"...) then ...;

 


or

if scan(posting_cat,1,'.') in ('a','b',...) then ...;

just for adding another option 😉

gamotte
Rhodochrosite | Level 12

Hello,

 

if prxmatch('/[a-j]\./',posting_cat2_new) then ...

Haikuo
Onyx | Level 15

@gamotte wrote:

Hello,

 

if prxmatch('/[a-j]\./',posting_cat2_new) then ...


I like it. I would just tweak a little to make it more robust,

 

if prxmatch('/^[a-j]\./',left(posting_cat2_new)) then ...

 

Astounding
PROC Star

If your sample values are all left-hand justified, you can also use:

 

if posting_cat2_new in : ('a.', 'b.', 'c.', 'd.', 'g.', 'h.', 'k.', 'i.', 'j.') then ...

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 7 replies
  • 1291 views
  • 1 like
  • 6 in conversation