Desktop productivity for business analysts and programmers

Novice needs help with IF a=xx and/or b=yy and/or c=zz then ny_var=1, othervise ny_var=0 --> table

Reply
Occasional Contributor
Posts: 5

Novice needs help with IF a=xx and/or b=yy and/or c=zz then ny_var=1, othervise ny_var=0 --> table

Hello 

I am pretty much novice in SAS Enterprise Guide and I am facing a problem which I cannot resolve by myself.

I wrote this code:

 

data test_new; set test;
     if a=1 or b=1 or c=1 then MI=1;

     If MI=. or MI<1 then MI=0;
run;

 

proc freq data=MI;
tables
     MI*randomisation_code/chisq;
run;

 

But when I run the code, I only get the table with MI=0.

 

Actually, I need the result for this:
              if a=1 and/or b=1 and/or c=1 then MI=1; (at least two of the variables should mach together)

 

but cannot get it to work.

I hope some of you can help me with advice what to do, in a step-by-step manner Smiley Happy

TIA
Mmignon

Super User
Posts: 6,543

Re: Novice needs help with IF a=xx and/or b=yy and/or c=zz then ny_var=1, othervise ny_var=0 -->

[ Edited ]

First step, run a PROC FREQ on the variables a, b, and c to be sure that you actually have the values you expect.  Your logic for creating MI depends on those, and looks like it should work.

 

A nice shortcut for the result you really want:

 

MI = (a + b + c) >= 2;

 

But that is dependent on the logic being right ... a, b, and c should be variables with values of 0 or 1 only.

Occasional Contributor
Posts: 5

Re: Novice needs help with IF a=xx and/or b=yy and/or c=zz then ny_var=1, othervise ny_var=0 -->

Posted in reply to Astounding

Thank you very much for the shortcut Smiley Happy 
I found the solution by myself, but it's more elegant with your shortcut!

Sincerely
Mmignon

Ask a Question
Discussion stats
  • 2 replies
  • 144 views
  • 1 like
  • 2 in conversation