BookmarkSubscribeRSS Feed
BrahmanandaRao
Lapis Lazuli | Level 10
data work.ds;
    input my_string $1-50;
    datalines;
World/Europe*Spain/Madrid
World/Europe*France/Paris
World/Latin-America/Argentina/Buenos Aires
World/Latin-America*Peru/Lima
;
run;
 
 
data work.ds_scan_slash;
    set work.ds;
     
    my_scan_slash = scan(my_string, 3,'*');
run;

Required Output

  my_string my_scan_slash
1 World/Europe/Spain/Madrid Spain
2 World/Europe/France/Paris France
3 World/Latin-America/Argentina/Buenos Aires Argentina
4 World/Latin-America/Peru/Lima Peru
2 REPLIES 2
LeonidBatkhan
Lapis Lazuli | Level 10

Hi Anandkvn,

 

All you need to do is add / to your list of separators:

data work.ds_scan_slash;
    set work.ds;
    my_scan_slash = scan(my_string, 3,'/*');
run;

Hope this helps.

jimbarbour
Meteorite | Level 14

@LeonidBatkhan's answer is a good one.

 

You could also translate the '*' to a '/" and then scan.  Like this:

data work.ds;
    input my_string $1-50;
    datalines;
World/Europe*Spain/Madrid
World/Europe*France/Paris
World/Latin-America/Argentina/Buenos Aires
World/Latin-America*Peru/Lima
;
run;
 
data work.ds_scan_slash;
	set work.ds;
	     
	My_String		=	TRANSLATE(My_String, '/', '*');
	my_scan_slash 	= 	scan(my_string, 3,'/');
run;

Jim

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
  • 1445 views
  • 2 likes
  • 3 in conversation