Help using Base SAS procedures

Rewrite the procedure in more efficient way

Accepted Solution Solved
Reply
Frequent Contributor
Posts: 98
Accepted Solution

Rewrite the procedure in more efficient way

Is there a quick and more efficient way to rewrite the procedure below?

data a;set a;

  if var_ctg_1=1 | var_1=1 then var1=1;

  if var_ctg_2=1 | var_2=1 then var2=1;

  if var_ctg_3=1 | var_3=1 then var3=1;

  if var_ctg_4=1 | var_4=1 then var4=1;

  if var_ctg_5=1 | var_5=1 then var5=1;

run;

Thanks a lot.

Lizi


Accepted Solutions
Solution
‎05-14-2015 01:40 PM
Super User
Posts: 19,792

Re: Rewrite the procedure in more efficient way

If you only have 5 not a huge improvement in terms of code.

data a2;

set a;

array ctg(5) var_ctg_1 - var_ctg_5;

array va(5) var_1 - var_5;

array var(5) var1-var5 (5*0);

do i=1 to 5;

if ctg(i)=1 or va(i)=1 then var(i)=1;

end;

run;

View solution in original post


All Replies
Solution
‎05-14-2015 01:40 PM
Super User
Posts: 19,792

Re: Rewrite the procedure in more efficient way

If you only have 5 not a huge improvement in terms of code.

data a2;

set a;

array ctg(5) var_ctg_1 - var_ctg_5;

array va(5) var_1 - var_5;

array var(5) var1-var5 (5*0);

do i=1 to 5;

if ctg(i)=1 or va(i)=1 then var(i)=1;

end;

run;

Frequent Contributor
Posts: 98

Re: Rewrite the procedure in more efficient way

Awesome. I thought about this way too, but didn't think it would work Smiley Wink

Thank you!

🔒 This topic is solved and locked.

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

Discussion stats
  • 2 replies
  • 178 views
  • 0 likes
  • 2 in conversation