DATA Step, Macro, Functions and more

Create a variable based on other vars: If then else if statement

Accepted Solution Solved
Reply
Contributor
Posts: 27
Accepted Solution

Create a variable based on other vars: If then else if statement

Hello, 

 

I am trying to create a variable based on the responses of the two other variables in my dataset. For example, I want to create a new dichotomized var (0=no; 1=yes) called new_var using var1 and var2. If one of the responses is yes, or both of them are yes, then it should be categorized as yes. Ohterwise, it should be no.

 

I tried If-then-else-if statement, but it didnt work. Any suggestion would be greatly appreciated!

 

Thanks.  


Accepted Solutions
Solution
‎12-12-2016 12:21 PM
Super User
Super User
Posts: 7,977

Re: Create a variable based on other vars: If then else if statement

[ Edited ]

Well, I would do something like:

data want;
  length new_var $5;
  set have;
  new_var="No";
if var1="Yes" or var2="Yes" then new_var="Yes"; run;

Seems a bit of a basic question though, are you sure this is what your asking?  Could shrink it too:

data want;
  length new_var $5;
  set have;
  new_var=ifc(var1="Yes" or var2="Yes","Yes","No");
run;

 

View solution in original post


All Replies
Solution
‎12-12-2016 12:21 PM
Super User
Super User
Posts: 7,977

Re: Create a variable based on other vars: If then else if statement

[ Edited ]

Well, I would do something like:

data want;
  length new_var $5;
  set have;
  new_var="No";
if var1="Yes" or var2="Yes" then new_var="Yes"; run;

Seems a bit of a basic question though, are you sure this is what your asking?  Could shrink it too:

data want;
  length new_var $5;
  set have;
  new_var=ifc(var1="Yes" or var2="Yes","Yes","No");
run;

 

Contributor
Posts: 27

Re: Create a variable based on other vars: If then else if statement

Yes! Thank you! I had tried something very similar to what you suggested below, but it didnt' work. Thanks again!

Contributor
Posts: 42

Re: Create a variable based on other vars: If then else if statement

If you have it coded like numbers>

data aaa;
input var1 var2 ;
datalines;
0 0
0 1
1 0
1 1
;
run;

data aaa;
set aaa;
if var1 or var2 then result=1;
else result=0;
run;

 

If you have it coded in strings be careful with comparing longer strings and upper lower cases

 

data bbb;
input var1 $3. var2 $3. ;
datalines;
No No
No Yes
YesNo
YesYes
;
run;

data bbb;
set bbb;
if lowcase(strip(var1))='yes' or lowcase(strip(var2))='yes' then result=1;
else result=0;
run;

 

Otherwise the logic is quite simple...

☑ This topic is solved.

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

Discussion stats
  • 3 replies
  • 184 views
  • 0 likes
  • 3 in conversation