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 |
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.
@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
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
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.