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
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
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.
Ready to level-up your skills? Choose your own adventure.