BookmarkSubscribeRSS Feed
eemrun
Obsidian | Level 7
I have addresses that I need to separate as street address. The last two words in the address field is usually the region and city. Any ideas?

Before
Hillcrest Avenue Hillcrest Auckland

After
Hillcrest Avenue
3 REPLIES 3
Ksharp
Super User

data _null_;
x='Hillcrest Avenue Hillcrest Auckland   ';
y=prxchange('s/\w+\s+\w+$//',1,strip(x));
put x= y=;
run;
Astounding
PROC Star

In practice, you might want to check that you have more than 2 words in the address, before doing this:

 

address = substr(address, 1, length(address) - 2 - length(scan(address, -1)) - length(scan(address, -2)));

novinosrin
Tourmaline | Level 20
data _null_;
x='Hillcrest Avenue Hillcrest Auckland   ';
call scan(x, -2, position, length);
substr(x,position)=' ';
put x=;
run;

Catch up on SAS Innovate 2026

Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.

Explore Now →
How to connect to databases in SAS Viya

Need to connect to databases in SAS Viya? SAS’ David Ghan shows you two methods – via SAS/ACCESS LIBNAME and SAS Data Connector SASLIBS – in this video.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 3 replies
  • 1904 views
  • 3 likes
  • 4 in conversation