BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
dennisl
Calcite | Level 5

Dear SAS Users.

perhaps you can provide me with an elegant way to solve the following issue:

My data set contains a set of variables named fab* where * is a number from 1 to 60. The variables contain a four digit code. I want to create a dummer variable fabid. It should have the value 1 if the two first digits equal 02 in one of the values of the 60 fab* variables for one observation. Is there a quick way to avoid writing an if condition without refering to all 60 variables' names?

Best,

Dennis

1 ACCEPTED SOLUTION

Accepted Solutions
Haikuo
Onyx | Level 15

Array() is your friend:

data want;

  set have;

   array test $4. fab1-fab60;

     do over test;

        if test=:'02' then new_var=1;

      end;

run;

Haikuo

View solution in original post

1 REPLY 1
Haikuo
Onyx | Level 15

Array() is your friend:

data want;

  set have;

   array test $4. fab1-fab60;

     do over test;

        if test=:'02' then new_var=1;

      end;

run;

Haikuo

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
  • 1 reply
  • 1062 views
  • 0 likes
  • 2 in conversation