BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
mauri0623
Quartz | Level 8

Hello all.,

 

I have the following strings that I am only interested in getting the 20AL05, 20AL03, 20AL09.

AB290363, 20AL05

IA000074 20AL03

PIV#IA000080 20AL09

 

Please help me with what function and how I will be able to achieve this.

1 ACCEPTED SOLUTION

Accepted Solutions
novinosrin
Tourmaline | Level 20

Hi @mauri0623  Assuming I understand your Data structure/layout

 

data have;
input string $30.;
cards;
AB290363, 20AL05
IA000074 20AL03
PIV#IA000080 20AL09
;

data want;
set have;
want=scan(string,-1,', ');
run;

View solution in original post

2 REPLIES 2
novinosrin
Tourmaline | Level 20

Hi @mauri0623  Assuming I understand your Data structure/layout

 

data have;
input string $30.;
cards;
AB290363, 20AL05
IA000074 20AL03
PIV#IA000080 20AL09
;

data want;
set have;
want=scan(string,-1,', ');
run;
andreas_lds
Jade | Level 19

Instead of telling scan to search from right to left by using a negative index, you could use the fourth parameter:

part = scan(string, 1, ', ', 'b');
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
  • 2 replies
  • 1251 views
  • 2 likes
  • 3 in conversation