BookmarkSubscribeRSS Feed
Rohit_1990
Calcite | Level 5

Hi all,

 

In the below dataset I have 2 columns c and y with data as follows:

X

34  45 th avenue

South west 34 street

 

Column y 

th avenue

street

 

So using column y I need to look in column x and if the 1stword is th in y and pattern matches in xthen I need to pull

 The preceding digit 

So my final output z would be something like this.

 

Column y 

45 th avenue

street

 

Regards,

Rohit

 

 

2 REPLIES 2
art297
Opal | Level 21

Something like the following should work:

data have (drop=position length);
  informat x y $30.;
  input x & y &;
  if scan(y,1) eq 'th' then do;
    call scan(x, FINDW(x, 'th',' ', 'e')-1, position, length);
    z=substr(x,position);
  end;
  else z=y;
  cards;
34 45 th avenue  th avenue
South west 34 street  street
;

Art, CEO, AnalystFinder.com

ChrisNZ
Tourmaline | Level 20

Why don't you keep the street number in your example?

What do you do if there is no match?

CFC_SAS_Communities_400x225.jpg

Call for content now open!

It's your turn to help shape SAS Innovate 2027. Share your expertise and inspire the SAS community.

Submit your proposal →

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
  • 1741 views
  • 0 likes
  • 3 in conversation