if condition in a data step in order to check for character strings

Solved
Occasional Contributor
Posts: 10

if condition in a data step in order to check for character strings

Dear users,

I just started to use SAS and need some help for an urgent paper. My data set contains an alphanumeric variable where the first position is a character followed by a four digit number. I want to create a new variable which has the value one if the character plus the first three digits of the number match. F.e. the value of the variable M968 should be 1 if the observation contains "M968", so an obeservation with "M9680" would be one and "M9670" would be zero.

My following code only recognizes if the complete value matches:

data multimorbid;

set library.file;

M968 = 0;

if icd_hd = 'M968' then M968=1;

run;

I tried to use the where statement, because I can use the operator contains, but using the where statement creates only a subset of observations which contain the character strings, but I want that the new variable M968 is added to the complete data set multimorbid.

Best,

Dennis

Accepted Solutions
Solution
‎03-23-2013 01:55 PM
Super User
Posts: 23,773

Re: if condition in a data step in order to check for character strings

Try using the operator =: which checks if the variable starts with M968

Or

You can use the substring function:

if substr(icd_hd, 1, 4)="M968" then M968=1;

data multimorbid;

set library.file;

M968 = 0;

if icd_hd =: 'M968' then M968=1;

run;

All Replies
Solution
‎03-23-2013 01:55 PM
Super User
Posts: 23,773

Re: if condition in a data step in order to check for character strings

Try using the operator =: which checks if the variable starts with M968

Or

You can use the substring function:

if substr(icd_hd, 1, 4)="M968" then M968=1;

data multimorbid;

set library.file;

M968 = 0;

if icd_hd =: 'M968' then M968=1;

run;

🔒 This topic is solved and locked.