DATA Step, Macro, Functions and more

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

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 10
Accepted Solution

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: 17,888

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;

View solution in original post


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

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.

Need further help from the community? Please ask a new question.

Discussion stats
  • 1 reply
  • 172 views
  • 0 likes
  • 2 in conversation