if condition - create new variable

Solved
Frequent Contributor
Posts: 81

if condition - create new variable

Hi,

I want to create a new variable (newvar) based on conditional logic see below - i know this would be easy but I need help.

have:

var1  var2   var3   var4  var5  var6

1           1      0          a       b      c

1           1      1          b       b      c

0           1       1         d       b      c

1           0       0         a       b      c

1           0       1         b       a     c

want:

var1  var2   var3   var4  var5  var6  newvar

1           1      0          a       b      c      1          (if var4 or var5 =a and var1 or var2 =1 then newvar=1)

1           1      1          b       b      c      0

0           1       1         d       b      c      0

1           0       0         a       b      c      1

1           0       1         b       a     c       1

thanks

Accepted Solutions
Solution
‎07-26-2016 01:25 PM
Super Contributor
Posts: 326

Re: if condition - create new variable

It is easy. Catch the logical value of those joint conditions. It takes 1 when true zero otherwise.

``````data have;
input var1  var2   var3   var4 :\$1.  var5 :\$1.  var6 :\$1.;
datalines;
1   1   0    a   b   c
1   1   1    b   b   c
0   1   1    d   b   c
1   0   0    a   b   c
1   0   1    b   a   c
;
run;

data want;
set have;
newvar = (var4 = 'a' | var5 = 'a') & (var1 = 1 | var2 = 1);
run;``````

All Replies
Solution
‎07-26-2016 01:25 PM
Super Contributor
Posts: 326

Re: if condition - create new variable

It is easy. Catch the logical value of those joint conditions. It takes 1 when true zero otherwise.

``````data have;
input var1  var2   var3   var4 :\$1.  var5 :\$1.  var6 :\$1.;
datalines;
1   1   0    a   b   c
1   1   1    b   b   c
0   1   1    d   b   c
1   0   0    a   b   c
1   0   1    b   a   c
;
run;

data want;
set have;
newvar = (var4 = 'a' | var5 = 'a') & (var1 = 1 | var2 = 1);
run;``````
☑ This topic is solved.