## SAS query

Solved
Frequent Contributor
Posts: 147

# SAS query

Dear All,

I have dataset with the one variable X. I would like to write a query to exclude the first numerical, special character part and start reading from the first occurrence of the alphabet.

10 - SEASONAL ALLERGIES - UN/UNK/1954

3333 ** COMMON COLD - 10/JAN/2015

222 ### RECURRENT SINUSITIS - UN/UNK/2003

44444 @@ INSOMNIA - UN/UNK/2008

The output should look like this.

SEASONAL ALLERGIES - UN/UNK/1954

COMMON COLD - 10/JAN/2015

RECURRENT SINUSITIS - UN/UNK/2003

INSOMNIA - UN/UNK/2008

Rakesh

Accepted Solutions
Solution
‎06-09-2016 12:52 PM
Super User
Posts: 8,069

## Re: SAS query

You could use the VERIFY() function.

``````data have;
input x \$60.;
cards4;
10 - SEASONAL ALLERGIES - UN/UNK/1954
3333 ** COMMON COLD - 10/JAN/2015
222 ### RECURRENT SINUSITIS - UN/UNK/2003
44444 @@ INSOMNIA - UN/UNK/2008
;;;;

data want ;
set have ;
x=substr(x,max(1,verify(x,'012345678 -+*#@')));
run;``````

All Replies
Solution
‎06-09-2016 12:52 PM
Super User
Posts: 8,069

## Re: SAS query

You could use the VERIFY() function.

``````data have;
input x \$60.;
cards4;
10 - SEASONAL ALLERGIES - UN/UNK/1954
3333 ** COMMON COLD - 10/JAN/2015
222 ### RECURRENT SINUSITIS - UN/UNK/2003
44444 @@ INSOMNIA - UN/UNK/2008
;;;;

data want ;
set have ;
x=substr(x,max(1,verify(x,'012345678 -+*#@')));
run;``````
Super User
Posts: 9,599

## Re: SAS query

You could also substr from the first occurence of an alphabetic character:

new_var=substr(findc(old_var,"","a"));

This will substring from first alpha character to the end.

Super User
Posts: 10,761

## Re: SAS query

```I don't like Tom's code .

data have;
input x \$60.;
cards4;
10 - SEASONAL ALLERGIES - UN/UNK/1954
3333 ** COMMON COLD - 10/JAN/2015
222 ### RECURRENT SINUSITIS - UN/UNK/2003
44444 @@ INSOMNIA - UN/UNK/2008
;;;;

data want ;
set have ;
x=substr(x,max(1,verify(x,'012345678 -+*#@')));
me=substr(x,prxmatch('/[a-z]/i',x));
run;

```
🔒 This topic is solved and locked.